2016-03-06 51 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> 

修復它。