2016-12-16 15 views
4

私はasp.netコアプロジェクトでWebリクエストを行いたいと思います。私は、次のことを試してみましたが、要求にデータを送信していないよう:、リクエストが送信されたasp.netコアのWebリクエスト

using System.Net; 

... 

//encoder 
UTF8Encoding enc = new UTF8Encoding(); 

//data 
string data = "[\"some.data\"]"; 

//Create request 
WebRequest request = WebRequest.Create(url); 
request.Method = "POST"; 
request.ContentType = "application/json"; 
request.Credentials = new NetworkCredential(user, secret); 

//Set data in request 
Stream dataStream = await request.GetRequestStreamAsync(); 
dataStream.Write(enc.GetBytes(data), 0, data.Length); 


//Get the response 
WebResponse wr = await request.GetResponseAsync(); 
Stream receiveStream = wr.GetResponseStream(); 
StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8); 
string content = reader.ReadToEnd(); 

私はエラーを取得しないが、要求してデータを送信していないようです。 リクエストのデータの長さも指定できません。これは中核的な問題ですか? (ps:資格情報が正しく送信されます)

誰か助けてくれますか?

+3

の発言でコードを編集します(以下OPの回答を参照してください) – Kapol

答えて

0

最後に解決しました。彼らは私の外部APIコードのバグで、私はAPIリクエストを解決しました。私の質問のコードは動作します(誰かがそれを使いたい場合)。

PS:私はそれはお答えできませんので、私は、質問を閉じるために投票していますycrumeyrolle

0

同期コンテキストの問題が発生している可能性があります。 Resultプロパティを取得する代わりに、GetRequestStreamAsync()GetResponseAsync()のような非同期メソッドを待つようにしてください。

//Set data in request 
Stream dataStream = await request.GetRequestStreamAsync(); 

//Get the response 
WebResponse wr = await request.GetResponseAsync(); 
+0

は、コードを変更しました。この変更によって問題は解決されませんでしたが、より論理的です(問題は私が呼び出していた私のAPIにありました)。ヘルプThxs! – Wouter

関連する問題