1. Los siguientes son los cuatro tipos más utilizados:
(1), application / x-www-form-urlencoded
Esta debería ser la forma más común de enviar datos a través de POST. En la forma nativa del navegador, si no se establece el atributo enctype, los datos eventualmente se enviarán en forma de application / x-www-form-urlencoded.
Nombre de pila:
Apellido:
(2), multipart / form-data Este también es un método de post-solicitud común, generalmente utilizado para cargar archivos, y el soporte de los principales servidores también es mejor. Entonces, cuando cargamos archivos usando el formulario, debemos hacer que el valor del atributo enctype sea del formulario multipart / form-data.(3) No
está familiarizado con application / json application / json como encabezado de respuesta. De hecho, también se usa como encabezado de solicitud muchas veces ahora para decirle al servidor que el cuerpo del mensaje es una cadena JSON serializada, excepto por la parte inferior Versiones de IE, Básicamente todas son compatibles. Además de la versión baja de IE que admite el método JSON.stringify (), el servidor también tiene una función para procesar JSON, por lo que no habrá problemas para usar json.
(4) 、 texto / xml
Para crear una instancia de HttpContent, necesitas encontrar su clase de implementación. Después de investigar un poco, encontré los siguientes cuatro:
MultipartFormDataContent 、 FormUrlEncodedContent 、 StringContent 、 StreamContent
Una comparación con el resumen anterior revelará las pistas:
MultipartFormDataContent =》 multipart / form-data
FormUrlEncodedContent =》 aplicación / x-www-form-urlencoded
StringContent =》 aplicación / json 等
StreamContent =》 binario
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 };
}
}