C# 如何在POST请求中向HTTP字段添加另一个值?
我在SSIS中有一个C#脚本,它通过第三方的API将数据发送给第三方(这是我处理过的最糟糕的API!) 无论如何,它对如何接收数据极其敏感。API接收CSV内容,并执行以下操作:C# 如何在POST请求中向HTTP字段添加另一个值?,c#,ssis,C#,Ssis,我在SSIS中有一个C#脚本,它通过第三方的API将数据发送给第三方(这是我处理过的最糟糕的API!) 无论如何,它对如何接收数据极其敏感。API接收CSV内容,并执行以下操作: Content-Type: text/plain; charset=utf-8 Content-Disposition: form-data; name="values"; filename="name.txt" "test1073R","2016-02-23T00:00","0.00","0.00" 但这一条没有
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name="values"; filename="name.txt"
"test1073R","2016-02-23T00:00","0.00","0.00"
但这一条没有:
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name="values"
"test1073R","2016-02-23T00:00","0.00","0.00"
区别在于必须发送filename=“name.txt”
此数据直接从变量发送-它不是先写入字符串的。下面是我创建HTTP请求的代码,但是我不确定如何将filename=“name.txt”
添加到请求中。有什么想法吗
using (var client = new HttpClient())
{
using (var multipartFormDataContent = new MultipartFormDataContent())
{
var values = new[]
{
new KeyValuePair<string, string>("customerid", Variables.BeonicCustomerId),
new KeyValuePair<string, string>("username", Variables.BeonicUsername),
new KeyValuePair<string, string>("password", Variables.BeonicPassword),
new KeyValuePair<string, string>("values", dataSb.ToString())
};
foreach (var keyValuePair in values)
{
multipartFormDataContent.Add(new StringContent(keyValuePair.Value),
String.Format("\"{0}\"", keyValuePair.Key));
}
使用(var-client=new-HttpClient())
{
使用(var multipartFormDataContent=new multipartFormDataContent())
{
var值=新[]
{
新的KeyValuePair(“customerid”,Variables.BeonicCustomerId),
新的KeyValuePair(“用户名”,Variables.BeonicUsername),
新的KeyValuePair(“密码”,变量.BeonicPassword),
新的KeyValuePair(“值”,dataSb.ToString())
};
foreach(值中的var keyValuePair)
{
multipartFormDataContent.Add(新的StringContent(keyValuePair.Value),
格式(“\”{0}\”,keyValuePair.Key));
}
我认为您可以通过以下方式添加整个内容配置:
multipartFormDataContent.Headers.Add("Content-Disposition", "form-data; name=\"values\"; filename=\"name.txt\"");
根据我对您所写内容的理解,您需要将文件名作为内容配置的一部分,以便通过Headers属性添加它