2016-03-06 49 views
-1

我想发布一些数据到端点,导致响应 - illegal characters in path错误500:路径中的非法字符

RootDTO = DTO的结构,我粘贴示例XML至this site 所以我相信这不是问题。

我做错了什么?

private Boolean ApiRequest(string order, string path) 
{ 
    var t = string.Empty; 
    var Obj_response = new RootDTO(); 

    byte[] requestData = Encoding.UTF8.GetBytes(order); 

    HttpWebRequest req = WebRequest.Create(new Uri(path)) as HttpWebRequest; 
    req.Method = "POST"; 
    req.Accept = "application/xml"; 
    req.ContentType = "application/xml; charset=utf-8"; 
    req.ContentLength = requestData.Length; 

    using (Stream post = req.GetRequestStream()) 
    { 
     post.Write(requestData, 0, requestData.Length); 
    } 

    try 
    { 
     //XmlSerializer serializer = new XmlSerializer(typeof(RootDTO)); 

     using (HttpWebResponse resp = req.GetResponse() as HttpWebResponse) 
     { 
      string resJson = string.Empty; 

      if (resp.StatusCode == HttpStatusCode.OK) 
      { 
       var ms = new StreamReader(resp.GetResponseStream(), UTF8Encoding.UTF8); 
       t = ms.ReadToEnd(); // <-----t contains "illegal characters in path" 

       return true; 
      } 
      else 
      { // error occured? 
       return false; 
      } 
     } 
    } 
    catch (WebException ex) 
    { 
     // error during APIrequest 
     var resp = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd(); 
    } 

    return false; 
} 
+0

那么,什么'路径'包含,为什么你认为它是有效的?你正在阅读的是服务器响应,所以你的请求有问题。 – CodeCaster

+0

路径是URL端点 –

+1

这不能回答我的问题。服务器告诉你所请求的路径是无效的,所以有些东西你没有告诉我们。你有一个请求_does_工作的例子,你是否尝试使用这段代码重建那个确切的请求? – CodeCaster

回答

0

答案是容易解决的 - 有在XML

造成的东西有问题,问题是:

<url> 
http://www.domain.com 
</url> 

我把它改为:

<url>http://www.domain.com</url> 

修复它。