반응형
질문
나는 플러그인 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:http
0.13.0에서는 깨진 변경사항을 도입했습니다. 이 변경으로 인해 이전에 Uri
나 String
을 인수로 받던 모든 함수들은 이제 오직 Uri
만을 받습니다. 따라서 String
에서 Uri
를 명시적으로 생성하기 위해 Uri.parse
를 사용해야 합니다. (package: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",
});
편집:
이 답변에 여전히 많은 좋아요를 받고 있으므로, 아마도 오래된 튜토리얼로 인해 이 문제를 여전히 겪는 많은 사람들이 있을 것으로 보입니다. 그렇다면, 좋아요를 감사히 받지만, 해당 튜토리얼에 업데이트를 요청하는 댓글을 남기는 것을 강력히 권장합니다.
반응형
댓글