Есть код:
var client = new RestClient("http://api2.online-convert.com/jobs");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("x-oc-api-key", "<your API key here>");
request.AddParameter("application/json",
"{\"input\":[{\"type\":\"remote\",\"source\":\"http://static.online-convert.com/example-file/raster%20image/jpg/example_small.jpg\"}],\"conversion\":[{\"category\":\"image\",\"target\":\"png\"}]}",
ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Но он используется на старой версии .Net. В новой нет класса RestClient и RestRequest. Я начал переделывать:
HttpWebRequest request = null;
request = (HttpWebRequest)WebRequest.Create("http://api2.online-convert.com/jobs");
request.Accept = @"application/json;text/xml";
request.Method = "POST";
Stream requestStream = request.GetRequestStreamAsync().Result;
Но я не знаю как мне параметры использовать:
request.AddParameter("application/json",
"{\"input\":[{\"type\":\"remote\",\"source\":\"http://static.online-convert.com/example-file/raster%20image/jpg/example_small.jpg\"}],\"conversion\":[{\"category\":\"image\",\"target\":\"png\"}]}",
ParameterType.RequestBody);
Отсюда:
// POST a JSON string
void POST(string url, string jsonContent)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
Byte[] byteArray = encoding.GetBytes(jsonContent);
request.ContentLength = byteArray.Length;
request.ContentType = @"application/json";
using (Stream dataStream = request.GetRequestStream()) {
dataStream.Write(byteArray, 0, byteArray.Length);
}
long length = 0;
try {
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) {
length = response.ContentLength;
}
}
catch (WebException ex) {
// Log exception and throw as for GET example above
}
}
Вызываем функцию для отправки запроса:
var Parameters;
// ... заполняем параметры динамически
var serializer = new JavaScriptSerializer();
string RequestParameters = serializer.Serialize(Parameters);
// Отправляем запрос
string Response = this.Post("http://api2.online-convert.com/jobs", RequestParameters);
MyResponse Response = serializer.Deserialize<MyResponse>(Response);
Альтернативно вы можете воспользоваться библиотекой RestSharp.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Могу ли я каким то образом, запустив httpListener по префиксу "http://+:8080", после этого послать на него запрос? Или же символы юникода нельзя использовать...