Использование значений для расширенного клиента REST для хром отлично работает, когда я загружаю те же значения и настройки, что и в моем приложении dot net 4.0.System.Net.WebException при попытке webRequest.GetRequestStream при попытке POST для службы RESTful
С другой стороны, когда я пытаюсь использовать службу REST клиентов из dotnet, мое приложение сразу же падает, когда я вызываю webRequest.GetRequestStream() с исключением {«Подключенное соединение было закрыто: произошла непредвиденная ошибка на send. "}, HREsult -2146233079, внутреннее исключение" "Ошибка аутентификации, поскольку удаленная сторона закрыла транспортный поток." HResult -2146232800 Вот мой код, но я изменил некоторые значения, чтобы защитить данные моего клиента.
Когда код пытается getrequeststream(), мой монитор fiddler поднимает 2 записи, чтобы показать, что мое приложение связывается с сервером. Разве это не просто создание целого пакета с заголовками полномочий и содержимым json и отправка его одним вызовом? или t как работает POST? Fiddler никогда не поднимает активность от ARC хрома, поэтому я не могу сравнивать.
Я пробовал WebRequest, webclient, httpwebrequest и т. Д. И не могу заставить их работать. (Я не могу использовать новый класс webclient, поскольку моим основным приложением является dotnet 4.0). Я запускаю VS в режиме администратора. Как может работать хромированный клиент 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();
}