0

リフレッシュトークンを使用してオフラインアクセスを取得しようとしています。httprequestを使用して、保存されたrefreshTokenを含む新しいaccessTokenを取得する必要があります。

しかし、何が悪いのかについての説明がないまま、BadRequest400を受け取り続けています。誰かがこのコードの何が問題になっているのか教えてもらえますか、または機能するコードを投稿できますか?

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://accounts.google.com/o/oauth2/token");

authenticator.ApplyAuthenticationToRequest(request);

request.Method = "POST";

String para = "code='"+refreshtoken+"'&client_id='" + ClientCredentials.CLIENT_ID + "'&client_secret='" + ClientCredentials.CLIENT_SECRET + "'&grant_type='refresh_token'";

System.IO.Stream requestStream = request.GetRequestStream();

System.IO.StreamWriter streamwriter = new System.IO.StreamWriter(requestStream);

streamwriter.Write(para);
streamwriter.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
System.IO.Stream stream = response.GetResponseStream();

StreamReader reader = new StreamReader(stream);
String result = reader.ReadToEnd();
4

2 に答える 2

0

.NET用のクライアントライブラリを使用する必要があります。完全な要求と応答を貼り付けることができれば、それが役立つ可能性があります。

于 2013-01-02T19:18:47.290 に答える
0
Public Function httpReq(uri As String, para As String, host As String, method As String) As String
    Dim responseData As String = ""
    Dim postData As String = para
    Dim encoding As New ASCIIEncoding()
    Dim byte1() As Byte = encoding.GetBytes(postData)

    Dim httpWebRequest As System.Net.HttpWebRequest = Net.WebRequest.Create(uri)
    httpWebRequest.Method = method
    httpWebRequest.ContentType = "application/x-www-form-urlencoded"
    httpWebRequest.ContentLength = byte1.Length

    Dim newStream As IO.Stream = httpWebRequest.GetRequestStream()
    newStream.Write(byte1, 0, byte1.Length)
    newStream.Close()

    Dim httpWebResponse As System.Net.HttpWebResponse = httpWebRequest.GetResponse()
    If httpWebResponse.StatusCode = System.Net.HttpStatusCode.OK Then
        Dim responseReader As System.IO.StreamReader = New System.IO.StreamReader(httpWebResponse.GetResponseStream())
        responseData = responseReader.ReadToEnd()
    End If
    httpWebResponse.Close()
    Return responseData
End Function
于 2013-01-04T08:23:43.617 に答える