使用值對鉻的高級REST客戶端,當我在相同的價值觀和設置飼料在我的點網4.0的應用程序使用的正常工作。另一方面,當我嘗試從dotnet使用客戶端REST服務時,當我調用webRequest.GetRequestStream()時異常{「底層連接已關閉:一個意外錯誤發生在發送。「},HREsult -2146233079,內部異常」「驗證失敗,因爲遠程方已關閉傳輸流。」HResult -2146232800 這是我的代碼,但我已更改了一些值以保護我的客戶的詳細信息System.Net.WebException當試圖張貼到RESTful服務
當代碼嘗試getrequeststream()時,我的提琴手監視器會提出2個條目來顯示我的應用程序正在聯繫服務器。它不應該只是創建一個包含授權標頭和json內容的整個數據包並在一次調用中發送它?或者是t他的POST通常如何工作? Fiddler從來不會從Chrome的ARC中挑選活動,所以我無法比較。
我試過的WebRequest,Web客戶端,HttpWebRequest的等,並不能得到其中的任何工作。 (我無法使用新的webclient類,因爲我的主要應用程序是dotnet 4.0)。我以管理員模式運行VS。 chrome的高級REST客戶端如何工作,但我的不是?有什麼不同?
string parsed = @" {
"data": {
"workoutDate": "2015-01-23",
"exerciseType": "TREADMILL",
"workoutDuration": 1456,
"distance": 1382.0,
"energyConsumed": 567068.0,
"averageHeartRate": 75.0,
"averageSpeed": 1.0
},
"user": {
"email": "[email protected]",
"firstName": "Len",
"lastName": "BlTestoomers",
"gender": "MALE",
"dateOfBirth": "1984-10-27"
}
}";
// Add authorization headers
string authentication = string.Format("Authorization: RRgym SNUFFCENTRE:{0}:gymId246", EyupSecurityKey.GenerateAuthenticationKey());
// Convert the parsed string into byte[]
byte[] buffer = Encoding.UTF8.GetBytes(parsed);
string addr = "https://equipment.test.pogram.uk/acr-rest/equipment/v1/workout/endurance";
WebRequest webRequest = WebRequest.Create(addr);
webRequest.Method = WebRequestMethods.Http.Post;
webRequest.ContentType = "application/json";
webRequest.ContentLength = buffer.Length;
webRequest.Headers.Add(authentication);
Stream newStream = webRequest.GetRequestStream();
// Send the data.
newStream.Write(buffer, 0, buffer.Length);
newStream.Close();
}