Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在POST请求中向HTTP字段添加另一个值?_C#_Ssis - Fatal编程技术网

C# 如何在POST请求中向HTTP字段添加另一个值?

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" 但这一条没有

我在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"

"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属性添加它