Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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# WebClient上载文件远程服务器返回错误:(400)请求错误_C#_System.net - Fatal编程技术网

C# WebClient上载文件远程服务器返回错误:(400)请求错误

C# WebClient上载文件远程服务器返回错误:(400)请求错误,c#,system.net,C#,System.net,尝试上载xml文件时,此特定服务器返回错误(上面的异常)。 我在另一台服务器()上尝试了另一个url,代码运行正常。 我的同事能够通过Perl脚本上传相同的xml文件 我的问题是:是否有其他方法上载文件内容?尝试上载数据,上载字符串,得到相同的错误 // Create the xml document file Byte[] buffer = new Byte[ms.Length]; buffer = ms.ToArray(); xmlOutput = System.Text.Encoding.

尝试上载xml文件时,此特定服务器返回错误(上面的异常)。 我在另一台服务器()上尝试了另一个url,代码运行正常。 我的同事能够通过Perl脚本上传相同的xml文件

我的问题是:是否有其他方法上载文件内容?尝试上载数据,上载字符串,得到相同的错误

// Create the xml document file
Byte[] buffer = new Byte[ms.Length];
buffer = ms.ToArray();
xmlOutput = System.Text.Encoding.UTF8.GetString(buffer);
string filePath = @"c:\my.xml");
File.WriteAllText(filePath, xmlOutput);

try
{
    ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;

    using (WebClient client = new WebClient())
    {
        byte[] rawResponse = client.UploadFile(url, filePath); 
        string response = System.Text.Encoding.ASCII.GetString(rawResponse);    
    }
}
catch (WebException ex)
{
}
catch (Exception ex)
{
}

使用UploadString并添加标头修复了400错误

然后必须添加utf8编码参数以修复500错误

client.Headers.Add("Content-Type", "text/xml");
client.Encoding = Encoding.UTF8;
string response = client.UploadString(CRMIntegrationURL, "POST", xmlOutput);

    string s = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
    "<Program xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"loyalty.xsd\">" +
    "</Program>";

    string test = client.UploadString(url, s);
上载字符串:

Content-Type: text/xml

使用UploadString并添加标头修复了400错误

然后必须添加utf8编码参数以修复500错误

client.Headers.Add("Content-Type", "text/xml");
client.Encoding = Encoding.UTF8;
string response = client.UploadString(CRMIntegrationURL, "POST", xmlOutput);

    string s = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
    "<Program xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"loyalty.xsd\">" +
    "</Program>";

    string test = client.UploadString(url, s);
上载字符串:

Content-Type: text/xml

使用UploadString并添加标头修复了400错误

然后必须添加utf8编码参数以修复500错误

client.Headers.Add("Content-Type", "text/xml");
client.Encoding = Encoding.UTF8;
string response = client.UploadString(CRMIntegrationURL, "POST", xmlOutput);

    string s = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
    "<Program xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"loyalty.xsd\">" +
    "</Program>";

    string test = client.UploadString(url, s);
上载字符串:

Content-Type: text/xml

使用UploadString并添加标头修复了400错误

然后必须添加utf8编码参数以修复500错误

client.Headers.Add("Content-Type", "text/xml");
client.Encoding = Encoding.UTF8;
string response = client.UploadString(CRMIntegrationURL, "POST", xmlOutput);

    string s = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
    "<Program xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"loyalty.xsd\">" +
    "</Program>";

    string test = client.UploadString(url, s);
上载字符串:

Content-Type: text/xml

我在向XDB发布测量的文本文件时也遇到了同样的问题。接受的答案帮助很大,但我还必须去掉文本内容中的
\r
字符,以消除
400错误请求
错误。我不知道这是InfluxDB的一般规则,还是只有在unix系统上安装InfluxDB(我的例子是Ubuntu)时才会这样

您可以在写入之前设置换行符,如下所述:
或者您可以在以后使用
text=text删除
\r
。替换(“\r”和“”)

我在向XDB发布测量文本文件时遇到了相同的问题。接受的答案帮助很大,但我还必须去掉文本内容中的
\r
字符,以消除
400错误请求
错误。我不知道这是InfluxDB的一般规则,还是只有在unix系统上安装InfluxDB(我的例子是Ubuntu)时才会这样

您可以在写入之前设置换行符,如下所述:
或者您可以在以后使用
text=text删除
\r
。替换(“\r”和“”)

我在向XDB发布测量文本文件时遇到了相同的问题。接受的答案帮助很大,但我还必须去掉文本内容中的
\r
字符,以消除
400错误请求
错误。我不知道这是InfluxDB的一般规则,还是只有在unix系统上安装InfluxDB(我的例子是Ubuntu)时才会这样

您可以在写入之前设置换行符,如下所述:
或者您可以在以后使用
text=text删除
\r
。替换(“\r”和“”)

我在向XDB发布测量文本文件时遇到了相同的问题。接受的答案帮助很大,但我还必须去掉文本内容中的
\r
字符,以消除
400错误请求
错误。我不知道这是InfluxDB的一般规则,还是只有在unix系统上安装InfluxDB(我的例子是Ubuntu)时才会这样

您可以在写入之前设置换行符,如下所述: 或者您可以在以后使用
text=text删除
\r
。替换(“\r”和“”)

您是否安装并检查了发送的请求?是否安装并检查了发送的请求?是否安装并检查了发送的请求?是否安装并检查了发送的请求?