У меня есть серверный код на nodejs с Express, этот сервис прекрасно работает на тесте с Почтальоном
Сервер-код:
app.post("/v2/addComment", (request, response) => {
let n = parseInt(request.query.number);
let key = request.get("key");
let token = request.get("token");
getToken(token).then(result => {
let kind = result[0].kind;
if(kind === key){
addComment(n, request.body);
var success = { event : 'done' };
return response.json(success);
}
else{
var success1 = { event : 'not done' };
return response.json(success1)
}
}).catch(error => console.log(error));
});
Я пытаюсь использовать этот сервис из приложения Windows Form с HttpClient
private async Task<string> PostAsyncToken(string token, string key, int num,
List<Comment> comments){
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("http://myhost.com/");
string uri = string.Format("v2/addComment?number={0}", num);
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new
MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.Add("token", token);
httpClient.DefaultRequestHeaders.Add("key", key);
var json = JsonConvert.SerializeObject(comments);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync(uri,content);
string contentResponse = await response.Content.ReadAsStringAsync();
return await Task.Run(() => contentResponse);
}
Тестовый ответ всегда возвращает 404 Not Found, и я полагаю, это потому, что запрос автоматически добавляет «https», когда он должен быть «http» при работе с почтальоном