0
我試圖發送JSON請求到HTTPS安全的REST服務。客戶解釋說REST服務正在使用自簽名證書。他還解釋說,這是一項開發服務,我應該忽略任何證書警告。 (該服務在樹莓派運行在我們的辦公室)發送HttpWebRequest到HTTPS REST服務
他轉發我下面捲曲的請求,以證明它的工作:
curl -k -H "Content-Type: application/json" -X POST -d '{"MerchantReference":"[removed]",
"Command":"Debit", "Amount":5500,"DeviceSerialNumber":"[removed]"}' https://[removed]
當我建立與膩子連接並運行此,我得到一個所以一切都很好。但是,當我在C#中編寫應用程序來執行此操作時,出現以下異常: 「底層連接已關閉:發送時發生意外錯誤。」內部例外是:「驗證失敗,因爲遠程方關閉了傳輸流。」
這裏是我的C#代碼:
var tempRequest = @"{""MerchantReference"":""[removed]"",""Command"":""Debit"",
""Amount"":5500,""DeviceSerialNumber"":""[removed]""}";
HttpWebRequest webRequest = WebRequest.Create(HttpAddress) as HttpWebRequest;
webRequest.Method = WebRequestMethods.Http.Post;
webRequest.ContentType = "application/json";
byte[] buffer = Encoding.UTF8.GetBytes(tempRequest);
Stream postData = webRequest.GetRequestStream();
postData.Write(buffer, 0, buffer.Length);
postData.Close();
var webResponse = webRequest.GetResponse(); // The exception occurred here
我已經在應用程序的開始增加了一個回調ServicePointManager.ServerCertificateValidationCallback剛剛接受任何證書,但執行甚至沒有達到這個部分。
所以我的問題是如何在C#中複製CURL結果。
任何援助將不勝感激。