2017-07-26 12 views
1

私は自分のプロジェクトにサードパーティのサービスを実装しようとしており、APIを使用するには認証が必要です。C#RestSharpがリクエストをリダイレクトしないようにする302

I:

は、私が自分の認証URLにPOSTリクエストを実行する必要がそうするために、問題は、私は、要求を実行すると、そのサーバーは今302で応答およびLocationヘッダーを、送信奇妙な一部であり、この場所のリンクを取得し、必要な情報を取得するためにクエリ文字列を読み取る必要があります。

私はすでに考えていたことをすべて試しています。でも、郵便配達はそれで動作しません。

は、これは私のコードです:

var client = new RestClient(APIBase + "/portal/rest/oauth2/login"); 

var request = new RestRequest(Method.POST); 

request.AddHeader("content-type", "application/x-www-form-urlencoded"); 
request.AddHeader("cache-control", "no-cache"); 
request.AddParameter("application/x-www-form-urlencoded", $"user={User}&password={Password}&client_id={ClientId}", ParameterType.RequestBody); 

var content = client.Execute(request); 

これは私がコマンドプロンプトにカールを使用して得ることができたレスポンスヘッダです:

HTTP/1.1 302 Moved Temporarily 
Date: Wed, 26 Jul 2017 17:59:32 GMT 
Server: Apache-Coyote/1.1 
Location: LOCATION-LINK 
Content-Length: 0 

HTTP/1.1 200 OK 
Date: Wed, 26 Jul 2017 17:59:32 GMT 
Server: Apache-Coyote/1.1 
Accept-Ranges: bytes 
ETag: W/"20095-1497998126000" 
Last-Modified: Tue, 20 Jun 2017 22:35:26 GMT 
Content-Type: text/html 
Content-Length: 20095 
Vary: Accept-Encoding 

ことは可能ですか?

答えて

1

あなたはRestSharpがでリダイレクトを無効にすることができます

client.FollowRedirects = false; 

そしてちょうど応答ステータスコードが302であることを確認し、Locationヘッダをお読みください。

関連する問題