2016-06-23 8 views
0

У меня есть код ниже в C#, в котором используется RestClient. Проблема в том, что заголовки не должны учитываться с учетом регистра, но выглядят так, как есть.C#: RestClient: RestRequest не подходит для заголовка нижнего регистра

var client = new RestClient(sMA_URL); 
var request = new RestRequest(Method.GET); 
request.AddHeader("cache-control", "no-cache"); 

//Without the line below the RestRequest adds some default header which is not acceptable by our server. 
request.AddHeader("**Accept**", "*/*"); 
request.AddHeader("content-type", "application/json"); 
request.AddHeader("authorization", "Bearer "+sBearerToken); 

// Make sure you deserialize this response, for further use. The best way to do this is to create a class and then fill that with the values obtained by the response but if a response is not used many times, 
// you can do it the way it has been done in Bearer Token Generation 

IRestResponse response = client.Execute(request); 

Console.WriteLine(response.Content); 
Console.ReadKey(); 

Когда я даю принимаю (в нижнем регистре) жалуется на контент-типа, но Accept (верхний регистр) работает fine.No, ошибка относительно типа содержимого. Я не могу понять, связана ли проблема с службой, которую она пытается вызвать, или с самим RestClient.

Это код состояния я получаю (без исключения) «NotAcceptable Content-Type»

+0

Вы получаете какое-либо исключение или можете ли вы показать нам ответное сообщение и код? –

+0

Добавлен статус возврата – Ekta

ответ

0

Ну ответ включен в ответ, его само за себя.

«NotAcceptable Content-Type»

сообщение выше означает, что апи, служба или конечная точка вашего пытаются отправив запрос, отклонит ваш запрос, на основе заголовка content-type, который «application/json» ,

Поскольку вы отправляете запрос GET, я не понимаю, почему вы должны указать content-type.

Попробуйте удалить заголовок content-type и, возможно, ваш запрос будет работать.

Добавление заголовка content-type будет использоваться для POST или PUT запросов, где вы отправляете тела/полезной нагрузки в запросе (например, JSON, данные формы, XML, многослойная, и т.д ...), и даже для этого типа запросов он по-прежнему не является обязательным, если сервер, на который вы отправляете свои запросы, требует указать content-type.

+0

Проблема заключается в том, когда я даю заголовок Accept в нижнем регистре, он жалуется на контент-тип, но когда я даю Aceept (в верхнем регистре), это не так. Я хочу знать, связана ли проблема с службой, которую я вызываю, или RestClient. Я не могу удалить его полностью, потому что он был частью кода с давних пор. – Ekta

+0

Я бы предположил, что он не смог прочитать этот заголовок и проглотил любое исключение, которое он бросил. –

+0

Если вы пытаетесь изолировать причину, выведите своего клиента из уравнения и используйте скрипач или почтальон. Если вы по-прежнему получаете исключение исключения, это служба. – JDBennett