У меня есть службы WCF самопринятый который предоставляет метод Web POST со следующей подписью:HttpClient POST к WCF возвращает 400 Bad Request
[ServiceContract]
public interface IPublisherService
{
[OperationContract]
[WebInvoke(UriTemplate = "Send", Method = "POST")]
void SendMessage(string message);
}
Если я отправить запрос с помощью Fiddler со следующей структурой (http://localhost:8080/Publisher/Send):
WCF возвращает 200 OK с ответом правильно десериализованное в формате JSON:
Но когда я пытаюсь использовать HttpClient из консольного приложения C#, я всегда получить обратно 400 Bad Request без какой-либо причины. Это запрос:
using (HttpClient client = new HttpClient())
{
var content = new StringContent(this.view.Message);
content.Headers.ContentType = new MediaTypeHeaderValue("Application/Json");
var response = client.PostAsync(
new Uri("http://localhost:8080/Publisher/Send"),
content);
var result = response.Result;
this.view.Message = result.ToString();
}
И ответ всегда 400, не имеет значения, если я использую client.PostAsync или clint.SendAsync.
StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Date: Tue, 29 Dec 2015 12:41:55 GMT
Server: Microsoft-HTTPAPI/2.0
Content-Length: 1647
Content-Type: text/html
}
Вы пробовали добавление 'Accept: приложение/json' заголовок? –
change 'Application/Json' to' application/json' –
Да, и это не имеет значения, проблема в самой строке, мне пришлось использовать JsonFormatter, чтобы получить WCF, принимающий мой запрос. Я создал ответ, я не знаю, может ли быть полезным другим – Raffaeu