Запрос REST работает с POSTMAN, но не с RestClientC#

Место общения программистов C#
Ответить
Anonymous
 Запрос REST работает с POSTMAN, но не с RestClient

Сообщение Anonymous »

Я хочу использовать REST API для загрузки заказов с моих веб-сайтов Magento.

Я использовал https для своего веб-сайта, поэтому, когда вы запрашиваете http, он автоматически преобразуется в https. .

Мой запрос REST довольно прост: просто включите токен в заголовок HTTP-запроса, запрос отлично работает с POSTMAN, но с моим кодом C# он постоянно терпит неудачу.< /p>

Моя библиотека RestClient:

Код: Выделить всё

 public class RestClient
{
public string EndPoint { get; set; }
public HttpVerb Method { get; set; }
public string ContentType { get; set; }
public string PostData { get; set; }
public string Accept { get; set; }

public RestClient(string endpoint, HttpVerb method, string postData, string contentType)
{
EndPoint = endpoint;
Method = method;
ContentType = contentType;
PostData = postData;
}

public string MakeRequest(string parameters, Dictionary headers,
out HttpStatusCode httpStatusCode, out bool succeed)
{
httpStatusCode = HttpStatusCode.NotFound;
succeed = false;

var request = (HttpWebRequest)WebRequest.Create(EndPoint + parameters);

request.Method = Method.ToString();
//request.ContentLength = 0;
request.ContentType = ContentType;
if (Accept!=null && Accept != "")
request.Accept = Accept;

foreach (var entry in headers)
{
request.Headers[entry.Key] = entry.Value;
}

if (!string.IsNullOrEmpty(PostData) && (Method == HttpVerb.POST || Method == HttpVerb.PUT))
{

using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(PostData);
}
}

try
{
using (var response = (HttpWebResponse)request.GetResponse())
{
var responseValue = string.Empty;
httpStatusCode = response.StatusCode;

// grab the response
using (var responseStream = response.GetResponseStream())
{
if (responseStream != null)
{
using (var reader = new StreamReader(responseStream))
{
responseValue = reader.ReadToEnd();
}

}
}

succeed = true;
return responseValue;
}
}
catch (WebException ex)
{
var resp = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
return resp;
}

return "";
}
Мой код:

Код: Выделить всё

        Dictionary headers = new Dictionary();
headers.Add("Authorization", String.Format("Bearer {0}", credential.Token));

String url = String.Format("{0}/rest/V1/orders?"
+"searchCriteria[filter_groups][0][filters][0][field]=updated_at&"
+"searchCriteria[filter_groups][0][filters][0][value]={1}&"
+"searchCriteria[filter_groups][0][filters][0][condition_type]=from&"
+"searchCriteria[filter_groups][1][filters][0][field]=updated_at&"
+"searchCriteria[filter_groups][1][filters][0][value]={2}&"
+"searchCriteria[filter_groups][1][filters][0][condition_type]=to",
credential.WebsiteURL,
updateStart.ToString(),
updateEnd.ToString());

RestClient client = new RestClient(url, HttpVerb.GET, "", "application/json");

String respJson = null;
HttpStatusCode code = HttpStatusCode.NotFound;
bool succeed = false;
try
{
respJson = client.MakeRequest("", headers, out code, out succeed);
}
catch (Exception ex)
{
}
Кто-нибудь встречался раньше? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/467 ... restclient
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»