Ниже приведен фрагмент кода для вызова POST API, где я застрял с ошибкой:
Плохой запрос
После поиска в Интернете я понимаю, что вы получаете эту ошибкукогда вы не соблюдаете правильный синтаксис полезной нагрузки или передаете правильные данные полезной нагрузки во время вызова post api.
Вот несколько способов, которые я пробовал до сих пор, но, к сожалению, ни один из них не работает.
// payload data's class represantation,
public class DNCAddressInfo
{
[JsonProperty("dncAddress")]
public string DNCAddress { get; set; }
[JsonProperty("checkForPhoneRejection")]
public bool CheckForPhoneRejection { get; set; }
[JsonProperty("checkForPhoneFormats")]
public bool CheckForPhoneFormats { get; set; }
}
Первая попытка:
DNCAddressInfo dncObj = GetPayloadData();
string payload = JsonConvert.SerializeObject(dncObj);
var content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await _client.PostAsJsonAsync(url, content).ConfigureAwait(false); // response: error code: 400 , bad request
Вторая попытка:
DNCAddressInfo dncObj = GetPayloadData();
JObject jsonObject = new JObject
{
["dncAddress"] = JsonConvert.SerializeObject(dncObj.DNCAddress),
["checkForPhoneRejection"] = JsonConvert.SerializeObject(dncObj.CheckForPhoneRejection),
["checkForPhoneFormats"] = JsonConvert.SerializeObject(dncObj.CheckForPhoneFormats)
};
var content = new StringContent(jsonObject.ToString(), Encoding.UTF8, "application/json");
HttpResponseMessage response = await _client.PostAsJsonAsync(url, content).ConfigureAwait(false);// response: error code: 400 , bad request
Третья попытка:
string payload = "{\"dncAddress\": \"91#1231123\", \"checkForPhoneRejection\": false, \"checkForPhoneFormats\": false}"; // sample payload data taken from api providers document
var content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await _client.PostAsJsonAsync(url, content).ConfigureAwait(false); // response: error code: 400 , bad request
Все три подхода привели к одной и той же ошибке,
StatusCode: 400, ReasonPhrase: '400'
Request header is ,
Headers = {Authorization: Basic XXXXX;
Accept: application/json
X-Requested-With: rest
Cache-Control: no-cache
}
Ответ от Почтальона выглядит все отлично.Вот снимок того же самого.
Есть ли что-то, что я делаю здесь неправильно или что-то пропустил?