2

Rest API Url がありhttps://www.box.com/api/oauth2/tokenます。Refresh/Access Token をそれぞれ取得します。

これを試してみると、PostMan (Chrome Extension)うまくいきます。以下にスクリーンショットを添付しました。

アクセス トークン リファレンスの取得: https://developers.box.com/oauth/

ここに画像の説明を入力

しかし、コードで試したのと同じで、Bad Request Error.

    public string PostToUrl(string url, string data)
    {
        string results = String.Empty;
        WebRequest req = WebRequest.Create(url);
        req.Method = WebRequestMethods.Http.Post;
        byte[] byteArray = Encoding.UTF8.GetBytes(data);
        req.ContentType = "application/x-www-form-urlencoded";
        req.ContentLength = byteArray.Length;
        Stream dataStream = req.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();
        WebResponse res = req.GetResponse();
        dataStream = res.GetResponseStream();
        StreamReader reader = new StreamReader(dataStream);
        results = reader.ReadToEnd();
        return results;
    }

    public override void TestConnection(TimeSpan timeout)
    {
       string json = PostToUrl("https://www.box.com/api/oauth2/token", "code=" + Code + "&grant_type=authorization_code&client_id=" + ClientId + "&client_secret=" + ClientSecret);
    }

ここで私の質問は....

この休息のリクエストはどのように作成する必要がありAPI callますか? マルチフォームデータと値をそのリクエストにどのようにマージする必要がありますか?

郵便配達員によるボックスリクエスト:

ここに画像の説明を入力

マイコードからのボックスリクエスト:

ここに画像の説明を入力

4

2 に答える 2

2

両方のリクエストをフィドラーと比較して、違いを見つけてください。

RestSharpを使用して、Rest 処理コードを簡素化することもできます。

于 2014-06-16T08:46:08.580 に答える
1

NameValueCollectionをヘッダーに追加しました。以下のように

            var nameValue = new NameValueCollection
            {
                {"grant_type", "authorization_code"},
                {"client_id", ClientId},
                {"client_secret", ClientSecret},
                {"code", RefreshToken}
            };

            request.Headers.Add(nameValue);

最初の参照リンク

今では正常に動作しています。

于 2014-06-17T04:16:12.153 に答える