본문 바로가기
expert

인수 유형 'String'은 매개변수 유형 'Uri'에 할당할 수 없습니다.

by RWriter 2023. 1. 28.
반응형

질문 제목:

인수 유형 'String'은 매개변수 유형 'Uri'에 할당할 수 없습니다.

질문 내용:

Flutter 플러그인 HTTP로 HTTP POST 요청을 하려고 하는데 제목 오류가 발생합니다. 내 다른 응용 프로그램에서 이것이 완벽하게 작동하기 때문에 누구든지 이것의 원인을 알고 있습니까?

await http.post(Uri.encodeFull("https://api.instagram.com/oauth/access_token"), body: {
      "client_id": clientID,
      "redirect_uri": redirectUri,
      "client_secret": appSecret,
      "code": authorizationCode,
      "grant_type": "authorization_code"
    });

해결 답변:

컴파일 타임 유형 안전성을 개선하기 위해 package:http0.13.0에서는Uri 이전에 s 또는 s 를 허용했던 모든 함수가 String이제 대신 s Uri 허용하도록 변경 사항을 변경했습니다 . s에서 s Uri.parse를 생성 하려면 명시적으로 를 사용해야 합니다 . ( 이전에는 내부적으로 귀하를 위해 호출했습니다.)UriStringpackage:http

이전 코드 다음으로 바꾸기
http.get(someString) http.get(Uri.parse(someString))
http.post(someString) http.post(Uri.parse(someString))

(등등.)

특정 예에서는 다음을 사용해야 합니다.

await http.post(
  Uri.parse("https://api.instagram.com/oauth/access_token"),
  body: {
    "client_id": clientID,
    "redirect_uri": redirectUri,
    "client_secret": appSecret,
    "code": authorizationCode,
    "grant_type": "authorization_code",
  });

편집하다:

1년이 지난 후에도 여전히 이 답변에 대한 찬성 투표를 받고 있기 때문에 아마도 오래된 자습서에서 이 문제를 겪고 있는 사람들이 여전히 많은 것 같습니다. 그렇다면 업보트에 감사하지만 해당 튜토리얼에 댓글을 남겨 업데이트를 요청하는 것이 좋습니다.

반응형

댓글