在 C# HttpClient 中发送表单数据

ahta14

在此处输入图片说明您好,我正在使用 C# HttpClient 从 api 中提取数据。我需要使用 post 方法以表单数据形式提取数据。我写了下面的代码,但得到了一个空的响应。我该怎么做?

var client = new HttpClient();

        client.Timeout = TimeSpan.FromSeconds(300);
        client.DefaultRequestHeaders.Accept.Add(
    new MediaTypeWithQualityHeaderValue("application/json"));

    var request = new HttpRequestMessage();
        request.Method = HttpMethod.Post;
        request.RequestUri = new Uri("https://myapi.com");

        var content = new MultipartFormDataContent();
       
        var dataContent = new FormUrlEncodedContent(new[]
        {
            new KeyValuePair<string, string>("value1", "myvalue1"),
            new KeyValuePair<string, string>("value2", "myvalue2"),
            new KeyValuePair<string, string>("value3", "myvalue3")
        });
        content.Add(dataContent);

        request.Content = content;
        var header = new ContentDispositionHeaderValue("form-data");
        request.Content.Headers.ContentDisposition = header;
        
        var response = await client.PostAsync(request.RequestUri.ToString(), request.Content);
        var result = response.Content.ReadAsStringAsync().Result;
未找到代码

您使用 以不正确的方式发送数据FormUrlEncodedContent要将参数作为MultipartFormDataContent字符串值发送,您需要替换下面的代码

var dataContent = new FormUrlEncodedContent(new[]
{
    new KeyValuePair<string, string>("value1", "myvalue1"),
    new KeyValuePair<string, string>("value2", "myvalue2"),
    new KeyValuePair<string, string>("value3", "myvalue3")
});

有了这个:

content.Add(new StringContent("myvalue1"), "value1");
content.Add(new StringContent("myvalue2"), "value2");
content.Add(new StringContent("myvalue3"), "value3");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用C#HttpClient发送未编码的表单数据

C# 发送 UrlEndcoded 表单数据

C#HttpClient 4.5分段/表单数据上传

HttpClient Post REST API中的C#多部分表单数据

C#多部分表单数据httpclient上传csv服务

使用HttpClient从流中发布多部分/表单数据文件

HttpClient Post请求不在C#中发送post参数

C#WebRequest发送表单数据大小限制

C#如何将带有文件的实体作为表单数据从HttpClient发布到API?

如何使用HttpClient发布表单数据IFormFile?

C#HttpClient发送多种形式的发布数据

在C#中使用HttpClient提交表单

C# HTTPClient 不发送请求

C# HttpClient:如何在 POST 请求中发送查询字符串

使用 Swift 在 Firestore 中发送表单数据

在 wp_remote_post 中发送表单数据

Angular9使用HttpClient通过表单数据将数据发布到API

HttpClient.GetStringAsync(url)抛出“基础连接已关闭:发送中发生意外错误。” Windows 8.1 C#

通过带有表单数据和文件的 Angular HttpClient 上传文件,但 multer 不会获取文件

使用HTTPClient的带有ViewModel的ASP.NET Core Post表单数据IFormFile

C#中的HttpClient多部分表单发布

使用HttpClient和C#在发布请求上发送json

c#httpclient PostAsJson发送GET请求而不是POST

Libcurl C ++-如何发布此特定表单的表单数据?

httpClient没有发送数据?

通过HttpClient(C#)发布方法将数据发送到SalesForce,不起作用

HttpClient使用登录C#从网站抓取数据

httpclient C#Couchdb未经授权创建数据库

访问JavaScript中发布的表单数据