2016-04-14 5 views
-1

これまで、私はendpointでリクエストをシンクしたクラスを作った。今、私はこの方法を含むdllを作成し、これは私がこのライブラリに変換しようとしているコードです:Microsoft.Net.Httpでデータをアップロードするには?

using (var client = new HttpClient()) 
{ 
    string requestJson = JsonConvert.SerializeObject(data); 
    client.DefaultRequestHeaders.Add("token", token); 
    byte[] responseArray = client. 'there is no upload data method 
    // the bottom code is of the old method 
    byte[] responseArray = client.UploadData(requestURI, method, Encoding.UTF8.GetBytes(requestJson)); 
    return Encoding.ASCII.GetString(responseArray); 
} 

ポータブルではないライブラリSystem.Netでは、私はclient.UploadDataを呼び出すことができますが、ここで私は以下を参照してください。 postAsyncとputAsyncでは、putまたはpostリクエストとは独立して、clientからserverにデータを送信できる方法がありますか?前もって感謝します。

答えて

1

パラメータで渡されたいくつかのメソッドを使用して、UploadDataメソッドでデータを送信しました。これはおそらくPOSTまたはPUTでした。 UploadDataのメソッドを指定しない場合は、POSTが使用されています。したがって、現在のコードとmethodの値をUploadDataに渡した値に基づいて、PostAsyncまたはPutAsyncを使用する必要があります。

このようなものを使用することです最も簡単な方法:PUTのコードは同じだろうが、PutAsJsonAsync

+0

これについていくつかの例が見つかりましたか? – Sandokan

+0

'HttpClient'の拡張メソッド' PostAsJsonAsync'と 'PutAsJsonAsync'があります。 MSDNで見つけることができます:https://msdn.microsoft.com/en-us/library/hh944521(v=vs.118).aspxおよびhttps://msdn.microsoft.com/en-us/library/ system.net.http.httpclientextensions.putasjsonasync(v = 118).aspx – tdragon

1

HTTP要求では、PUTとPOSTはサーバーにデータを送信する正しい方法ですが、これらの方法とは独立してデータを送信することは意味がありません。 System.Netで利用できるようなクライアントを使用している場合、これは単にあなたから離れて抽象化されているだけです。

+0

と確かに眺めの良い点は、あなた次第ですが、中に

using(var client = new HttpClient()) { var response = await client.PostAsJsonAsync(requestUrl, data); return await response.Content.ReadAsStringAsync(); } 

を古いコード私は要求から独立してデータを送った。 – Sandokan

関連する問題