включить необработанный текст в HTTP получить запрос в C # бэкэнд-код - PullRequest
1 голос
/ 17 апреля 2019

У меня есть этот код:

 client.BaseAddress = new Uri("https://sandbox-quickbooks.api.intuit.com/v3/company/1232/vendor/70?minorversion=8");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Authorization
                         = new AuthenticationHeaderValue("Bearer", "bLpuw.vjbvIP_P7Vyj4ziSGa3Ohg");

            using (HttpResponseMessage response = client.PostAsync("https://sandbox-quickbooks.api.intuit.com/v3/company/1232/query?minorversion=8").Result)
            {
                using (HttpContent content = response.Content)
                {
                    var json = content.ReadAsStringAsync().Result;
                }
            }

В примере с почтальоном api quickbooks они включают необработанный текстовый запрос в действие http post. Пример: enter image description here

Как включить необработанный текст в мой запрос c # post?

Ответы [ 3 ]

0 голосов
/ 17 апреля 2019

Создайте StringContent () с текстом в нем и передайте его в PostAsync ().

Возможно, вам потребуется проверить, какой заголовок Content-Type ожидается, и передать его конструктору StringContent.

Например

using (var requestContent = new StringContent(“any text”, Encoding.UTF8, “text/plain”))
{
      ... httpClient.PostAsync(url, requestContent)...
}
0 голосов
/ 17 апреля 2019
client.BaseAddress = new Uri("https://sandbox-quickbooks.api.intuit.com/v3/company/1232/vendor/70?minorversion=8");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
    new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization
                = new AuthenticationHeaderValue("Bearer", "bLpuw.vjbvIP_P7Vyj4ziSGa3Ohg");

var postContent = new StringContent("myContent");

using (HttpResponseMessage response = client.PostAsync("https://sandbox-quickbooks.api.intuit.com/v3/company/1232/query?minorversion=8", postContent).Result)
{
    using (HttpContent content = response.Content)
    {
        var json = content.ReadAsStringAsync().Result;
    }
}

Кроме того, имейте в виду, что вы неправильно используете методы Async, поэтому вам следует всегда ждать, а не использовать свойство блокировки Result из задачи.

0 голосов
/ 17 апреля 2019

Вам нужно передать содержимое в метод PostAsync, как этот

var myContent = "your string in here";
var buffer = System.Text.Encoding.UTF8.GetBytes(myContent);
var byteContent = new ByteArrayContent(buffer);

using (HttpResponseMessage response = client.PostAsync("https://sandbox-quickbooks.api.intuit.com/v3/company/1232/query?minorversion=8",bytecontent).Result)
            {
                using (HttpContent content = response.Content)
                {
                    var json = content.ReadAsStringAsync().Result;
                }
            }
...