C # usa HttpClient para publicar el contenido de los datos en varios formatos de HttpContent

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 };
                    }
                }

Supongo que te gusta

Origin blog.csdn.net/m0_50623581/article/details/112277115
Recomendado
Clasificación