2014-02-10 56 views
0

我正在與Spreedly合作,而且我正在運行我認爲是小問題。使用C#發送WebRequest到Spreedly時出錯:(422)無法處理的實體

對於我的生活,爲什麼我的代碼不正確地送我的背景,我不明白...

這是我的代碼(憑證已被更改),返回錯誤(422)處理的實體,我只能假設它意味着正在發送的XML有問題,但是當我設置一個斷點時它似乎是正確的。

string url = "https://core.spreedly.com/v1/gateways.xml"; 
WebRequest request = WebRequest.Create(url); 
request.ContentType = "Content-type: application/xml"; 
request.Method = "POST"; 
request.Credentials = new NetworkCredential("Ll6fAtoVSTyVMlJEmtpoJV8Shw5", "RKOCG5D8D3fZxDSg504D0IxU2XD4Io5VXmyzdCtTivHFTTSylzM2ZzTWFwVH4ucG"); 
XElement xelement = new XElement("gateway", new XElement("gateway_type", "test")); 
byte[] buffer = Encoding.UTF8.GetBytes(xelement.ToString()); 
request.ContentLength = buffer.Length; 
Stream reqstr = request.GetRequestStream(); 
reqstr.Write(buffer, 0, buffer.Length); 
reqstr.Close(); 
WebResponse response = request.GetResponse(); 

我不經常使用WebRequest,因此我錯過了一些簡單的東西並不合理。

Spreedly保留其文件here

的例子是捲曲,說我應該發送以下內容:

$ curl https://core.spreedly.com/v1/gateways.xml \ 
-u 'Ll6fAtoVSTyVMlJEmtpoJV8Shw5:RKOCG5D8D3fZxDSg504D0IxU2XD4Io5VXmyzdCtTivHFTTSylzM2ZzTWFwVH4ucG' \ 
-H 'Content-Type: application/xml' \ 
-d '<gateway> 
     <gateway_type>test</gateway_type> 
    </gateway>' 

任何幫助將不勝感激。

謝謝。

+0

你可能要考慮兩個Github上回購之一,而不是重塑在C#中輪:https://github.com/malixsys/Spreedly.Net和https: //github.com/philjones88/SpreedlyCoreSharp都實現了你要查找的大部分功能 – hross

回答

0

嘗試改變下面一行:

request.ContentType = "application/xml"; 
+0

我知道這很愚蠢,謝謝! – arucker

相關問題