1.以下は、最も一般的に使用される4つのタイプです。
(1)、application / x-www-form-urlencoded
これは、POSTを介してデータを送信するための最も一般的な方法です。ブラウザのネイティブフォームでは、enctype属性が設定されていない場合、データは最終的にapplication / x-www-form-urlencodedの形式で送信されます。
ファーストネーム:
苗字:
(2)、multipart / form-dataこれも一般的なPOSTリクエスト方法であり、一般的にファイルのアップロードに使用され、主要なサーバーのサポートも優れています。したがって、フォームを使用してファイルをアップロードするときは、フォームのenctype属性値をmultipart / form-dataにする必要があります。(3)
応答ヘッダーとしてのapplication / json application / jsonに不慣れではありませんが、実際には、メッセージ本文がシリアル化されたJSON文字列であることをサーバーに通知するために、要求ヘッダーとしても何度も使用されています。 IEのバージョン、基本的にすべてのサポート。JSON.stringify()メソッドをサポートする低バージョンのIEに加えて、サーバーにはJSONを処理する関数もあるため、jsonを使用しても問題はありません。
(4)、text / xml
HttpContentのインスタンスを作成するには、彼の実装クラスを見つける必要があります。いくつかの調査の結果、次の4つが見つかりました。
MultipartFormDataContent、FormUrlEncodedContent、StringContent、StreamContent
上記の要約と比較すると、手がかりが明らかになります。
MultipartFormDataContent =》 multipart / form-data
FormUrlEncodedContent =》 application / x-www-form-urlencoded
StringContent =》 application / json等
StreamContent =》バイナリ
demo
var jsonParams = JsonConvert.DeserializeObject<dynamic>(JsonConvert.SerializeObject(jsonObj));
string code = jsonParams.code;
//string postData = new pastdate(); "client_id=-4A3A-AA5C-F46886D91638&client_secret=E14F7DBE--8427-470CCD4F29E6&grant_type=authorization_code&code=" + code + "&redirect_uri=http://10.10.10.80/webApi_TJ/Pages/Default.html";
MultipartFormDataContent content = new MultipartFormDataContent();
//HttpMessageHandler headler = new HttpMessageHandler();
using (HttpClient client = new HttpClient())
{
//client.DefaultRequestHeaders.Add("");
var values = new[]
{
new KeyValuePair<string, string>("client_id", "A98D1F84-15E6-4A3A-AA5C-F46886D91638"),
new KeyValuePair<string, string>("client_secret", "E14F7DBE-480E-4000-8427-470CCD4F29E6"),
new KeyValuePair<string, string>("grant_type", "authorization_code"),
new KeyValuePair<string, string>("code", code),
new KeyValuePair<string, string>("redirect_uri", "http://10.67.50.80/webApi_TJ/Pages/Default.html")
};
using (FormUrlEncodedContent multipartFormDataContent = new FormUrlEncodedContent(values))
{
//multipartFormDataContent.Add(new ByteArrayContent(System.IO.File.ReadAllBytes(@"D:\1.txt")), "attchfile", "\"test.jpg\"");
var requestUri = "http://10.67.38.176:8080/SSO/token";
var html = client.PostAsync(requestUri, multipartFormDataContent).Result.Content.ReadAsStringAsync().Result;
return new ApiResult() {
status = (int)ApiResult.enum_result.success, message = string.Empty, data = html };
}
}