2017-05-18 9 views
0

私のプロジェクトでは、ユーザの認証にGETが必要です。 ここは、私がC#.net web.client(UploadString())データがないCURLを模倣する

のInnerExceptionを取得し、私は

curl -H "Content-Type: application/json" -H "header1: headerData" -k -X GET https://url.com/x1/users/userSlug 

私はString.Emptyので

using (var client = new WebClient()) 
{ 
var urlEndPoint= URL + '/' + UserSlug; 

client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); 
client.Headers.Add("header1", headerData); 
try 
{ 
PopulatedUser = serializer.Deserialize<User>(client.UploadString(new Uri(urlEndPoint), "GET", String.Empty)); 
return PopulatedUser; 
} 
catch (WebException e) 
    { 
    PopulatedUser = serializer.Deserialize<User>(new StreamReader(e.Response.GetResponseStream()).ReadToEnd()); 
//TODO: find server log code examples for errors 
return PopulatedUser; 
    } 
} 

を使用しているのC#を模倣しようとしているCURLです= {"この動詞タイプのコンテンツ本体を送信できません"}

私はこれをどのように扱い、ユーザーデータを使って返答を得るのかよくわかりません。

私はcurlコマンドを実行すると、私は戻って

{ "ステータス" を取得: "OK"、 "コード":200、 "データ":{ "ユーザー":{「ID 「:」thisguy」、userFirstname: 『ボブ』 ......など

+0

そして、あなたの質問は?問題は何ですか?あなたは両方のWebリクエストをfiddler2のようなデバッグプロキシでチェックしましたか? – DigiFriend

+0

および?あなたはC#コードで設定している問題は何ですか? –

+0

申し訳ありませんが、私はそれにエラーを入れて、ちょうど底にそれを追加したと思った。 –

答えて

0

あなたはUploadString使用すべきではありませんので、あなたは、サーバーには何もアップロードされていません - アップロードが通常POSTまたはSTOR(のために使用しますftp)が、GETではありません。間違った

代わりにDownloadStringを使用してください。それはGETを使用します。だから、

、代わりに:

client.UploadString(new Uri(urlEndPoint), "GET", String.Empty) 

用途:

client.DownloadString(new Uri(urlEndPoint)) 
+0

奇妙なことに、私もそれを試みました。 403エラーが発生する –

+0

@ JonnyP - 両方の方法でヘッダーをチェックしましたか?繰り返しますが、fiddler2のようなデバッグプロキシは実際に何が起こっているかを理解するのに役立ちます。 – DigiFriend

+0

10点@DigiFriend、あなたはこの答えで正しかった、私はタイプミスをしたので吸う:( SHAME SHAME SHAME –

関連する問題