System.Net.HttpWebRequest request;
request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(URL);
request.ContentType = "application/x-www-form-urlencoded";
CookieContainer cookie = new CookieContainer();
request.CookieContainer = cookie;
request.Method = "POST";
request.ContentType = "text/html;charset=UTF-8;";
string requestContent = @"<request><accname><![CDATA[" + fileName + "]]></accname><accessoryid>CB6E04AE-F3FD-4A52-804B-18D3ACA3BC55</accessoryid><filelength>0</filelength><downloadlength></downloadlength><updown>0</updown></request>";
//执行以下的时候可能会报错
request.Headers.Add( string.Format("key:{0}", requestContent));
request.AddRange(0);在执行request.Headers.Add时,如果filename包含 "合""布" 就会报错 "指定的值含有无效的控制字符。参数名: value" , 而其他中文有时候也会出现这样的报错,具体就没在试了
"服" 则会报错"指定的值含有无效的CRLF字符"
用英文或者数字的filename就没事
这个问题好郁闷,都不知道为啥会出现阿
现在都不确定其他中文是否也会出现这样的问题求大神解决~~
PS:request.Headers.Add( string.Format("key:{0}", requestContent));这里面的requestContent不允许进行System.Web.HttpUtility.UrlEncode(requestContent)这样的编码操作,因为对方接口没有规定这个编码操作,一旦进行编码的话,对方收到的就是乱码了Hearders
request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(URL);
request.ContentType = "application/x-www-form-urlencoded";
CookieContainer cookie = new CookieContainer();
request.CookieContainer = cookie;
request.Method = "POST";
request.ContentType = "text/html;charset=UTF-8;";
string requestContent = @"<request><accname><![CDATA[" + fileName + "]]></accname><accessoryid>CB6E04AE-F3FD-4A52-804B-18D3ACA3BC55</accessoryid><filelength>0</filelength><downloadlength></downloadlength><updown>0</updown></request>";
//执行以下的时候可能会报错
request.Headers.Add( string.Format("key:{0}", requestContent));
request.AddRange(0);在执行request.Headers.Add时,如果filename包含 "合""布" 就会报错 "指定的值含有无效的控制字符。参数名: value" , 而其他中文有时候也会出现这样的报错,具体就没在试了
"服" 则会报错"指定的值含有无效的CRLF字符"
用英文或者数字的filename就没事
这个问题好郁闷,都不知道为啥会出现阿
现在都不确定其他中文是否也会出现这样的问题求大神解决~~
PS:request.Headers.Add( string.Format("key:{0}", requestContent));这里面的requestContent不允许进行System.Web.HttpUtility.UrlEncode(requestContent)这样的编码操作,因为对方接口没有规定这个编码操作,一旦进行编码的话,对方收到的就是乱码了Hearders
这个在接口约定中,是要求吧请求内容方在key中的
"参数直接在http 协议中当做headers的一个参数传递,参数为Key=requestContent;"
这是接口的描述