Имитация Multipart post запроса использующего CORS при помощи Rest.Sharp

206
21 сентября 2018, 11:20

Собственно, что я пытаюсь сделать:

  • залогинится с помощью кук на contributor-accounts.shutterstock.com (сделано!)
  • сделать пост-запрос отправляющий туда картинку (проблема!)

Сам код враппера вокруг RestSharp:

public class Requester
{
    public RestClient Client = new RestClient();
    public Requester()
    {
        Client.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0";
    }
    private IRestResponse GetSingle(string url, int timeOutMs)
    {
        Client.BaseUrl = new Uri(url);
        var request = new RestRequest();
        request.Timeout = timeOutMs;
        return Client.Execute(request);
    }
    public IRestResponse Post(string url, string filePath)
    {
        Client.BaseUrl = new Uri(url);
        var request = new RestRequest(url, Method.POST);
        request.AddFile("someFileName", filePath);
        return Client.Execute(request);
    }
    public IRestResponse CorpsPost(string baseUrl, string remoteDomainUrl, string filePath)
    {
        Client.BaseUrl = new Uri(baseUrl);
        var basePage = GetSingle(baseUrl, 6000);
        var optionsRequest = new RestRequest(baseUrl, Method.OPTIONS);
        Client.Execute(optionsRequest);
        //some addtitional code here?
        var request = new RestRequest(remoteDomainUrl, Method.POST);
        request.AddFile("someFileName", filePath);
        return Client.Execute(request);
    }
}

Вся проблема в том, что отсылка файла (пост) идет на другой домен:

https://media-upload.shutterstock.com

и, как следствие, браузер автоматически использует CORS. Доп.информацию можно почитать здесь: тыц

Итак, вопроса 2:

  1. возможно ли вообще симитировать CORS запрос без браузера?

  2. Если возможно, то как это сделать при помощи RestShapp? То есть как исправить CorpsPost() метод что бы он работал в принципе?

READ ALSO
Graceful shutdown и запросы в состоянии обработки

Graceful shutdown и запросы в состоянии обработки

Реализовываю Graceful shutdown на ASPNET Core 2

234
Как преобразовать “\\n”, “\\t” в “\n”, “\t”

Как преобразовать “\\n”, “\\t” в “\n”, “\t”

Я беру из текстового файла содержимое вида:

200
Как вывести результат SQL запроса в .net core?

Как вывести результат SQL запроса в .net core?

Есть RAW SQL запрос с параметрами реализующий Full-text searchНеобходимо преобразовать результаты запроса в список

200
Как узнать цвет фона документа с помощью OpenXml?

Как узнать цвет фона документа с помощью OpenXml?

Можна пройтись по элементам документа

185