PUT запрос, получение JSON из переменной.

xEngine33

Пользователь
Регистрация
25.03.2016
Сообщения
68
Благодарностей
14
Баллы
8
Доброе утро! Ребят подскажите как из переменной зеннопостера выпарсить JSON и вставить в C# снипет. Делаю так:

Код:
string url = "https://api.****.com/api/v2/users/self";
string accessToken = project.Variables["ACCESS_TOKEN"].Value;
string userAgent = "okhttp/3.4.1";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "PUT";
httpWebRequest.Headers.Add("X-****-ApiKey", "39ac238e-e3ab-4b34-86c5-19c367e8e472");
httpWebRequest.Headers.Add("X-****-AppVersion", "10243");
httpWebRequest.Headers.Add("X-****-Locale", "ru-RU");
httpWebRequest.Headers.Add("X-****-DeviceBrand", "XIAOMI Redmi Note 3");
httpWebRequest.Headers.Add("X-****-OsVersion", "4.4.2 (19)");
httpWebRequest.Headers.Add("X-****-ConnectionType", "WIFI");
httpWebRequest.Headers.Add("X-****-AccessToken", accessToken);
httpWebRequest.UserAgent = userAgent;

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    string jsonText = "{\"name\":\"Aubrey\",\"bio\":\"*** me now, my profile...\",\"phoneNumber\":\"\",\"websiteUrl\":\"http://bi***.com/LINK\",\"gender\":\"UNKNOWN\"}";
    streamWriter.Write(jsonText);
    streamWriter.Flush();
    streamWriter.Close();
}

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
return httpWebRequest;
Отдает 200 HTTP. Но если меняю эту строку и беру строку из переменной, отдает 400 - сотый.

Код:
string jsonText = project.Variables["JSON_CODE"].Value;
Так вот сам вопрос, возможно ли этот самый JSON получить из переменной, есть решение? Спасибо.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 104
Баллы
113
Тут у тебя всё верно.
Если значение берешь из переменной проекта, то кавычки не надо экранировать, т.е. значение должно быть такое:
Код:
{"name":"Aubrey","bio":"*** me now, my profile...","phoneNumber":"","websiteUrl":"http://bi***.com/LINK","gender":"UNKNOWN"}
 
  • Спасибо
Реакции: xEngine33

xEngine33

Пользователь
Регистрация
25.03.2016
Сообщения
68
Благодарностей
14
Баллы
8
Тут у тебя всё верно.
Если значение берешь из переменной проекта, то кавычки не надо экранировать, т.е. значение должно быть такое:
Код:
{"name":"Aubrey","bio":"*** me now, my profile...","phoneNumber":"","websiteUrl":"http://bi***.com/LINK","gender":"UNKNOWN"}
Спасибо, выручил!
 

yriy158

Client
Регистрация
10.08.2013
Сообщения
491
Благодарностей
301
Баллы
63
Доброе утро! Ребят подскажите как из переменной зеннопостера выпарсить JSON и вставить в C# снипет. Делаю так:

Код:
string url = "https://api.****.com/api/v2/users/self";
string accessToken = project.Variables["ACCESS_TOKEN"].Value;
string userAgent = "okhttp/3.4.1";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "PUT";
httpWebRequest.Headers.Add("X-****-ApiKey", "39ac238e-e3ab-4b34-86c5-19c367e8e472");
httpWebRequest.Headers.Add("X-****-AppVersion", "10243");
httpWebRequest.Headers.Add("X-****-Locale", "ru-RU");
httpWebRequest.Headers.Add("X-****-DeviceBrand", "XIAOMI Redmi Note 3");
httpWebRequest.Headers.Add("X-****-OsVersion", "4.4.2 (19)");
httpWebRequest.Headers.Add("X-****-ConnectionType", "WIFI");
httpWebRequest.Headers.Add("X-****-AccessToken", accessToken);
httpWebRequest.UserAgent = userAgent;

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    string jsonText = "{\"name\":\"Aubrey\",\"bio\":\"*** me now, my profile...\",\"phoneNumber\":\"\",\"websiteUrl\":\"http://bi***.com/LINK\",\"gender\":\"UNKNOWN\"}";
    streamWriter.Write(jsonText);
    streamWriter.Flush();
    streamWriter.Close();
}

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
return httpWebRequest;
Подскажите пожалуйста, а как сюда впихнуть прокси с авторизацией?
Пробовал дописать:

WebProxy myproxy = new WebProxy(project.Variables["proxy"].Value, true);
httpWebRequest.Proxy = myproxy;

Где proxy - моя прокся в формате http://login:pass@ip:port
Но выдает ошибку: Выполнение действия CSharp OwnCode The remote server returned an error: (407) Proxy Authentication Required.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 611
Благодарностей
4 601
Баллы
113
Подскажите пожалуйста, а как сюда впихнуть прокси с авторизацией?
Пробовал дописать:

WebProxy myproxy = new WebProxy(project.Variables["proxy"].Value, true);
httpWebRequest.Proxy = myproxy;

Где proxy - моя прокся в формате http://login:pass@ip:port
Но выдает ошибку: Выполнение действия CSharp OwnCode The remote server returned an error: (407) Proxy Authentication Required.
нужно отдельно задавать логин, пароль и адрес. Ещё и протокол вроде, мб и порт
 
  • Спасибо
Реакции: yriy158

yriy158

Client
Регистрация
10.08.2013
Сообщения
491
Благодарностей
301
Баллы
63
нужно отдельно задавать логин, пароль и адрес. Ещё и протокол вроде, мб и порт
Да, так и есть, спасибо!
Пришлось правда долго гуглить + метод научного тыка и все получилось.
Вот такая конструкция вроде как работает.
Код:
WebProxy Myproxy = new WebProxy();
Uri newUri = new Uri("http://"+project.Variables["proxy"].Value+":"+project.Variables["port"].Value);
Myproxy.Address = newUri;
Myproxy.Credentials = new NetworkCredential(project.Variables["proxylogin"].Value, project.Variables["proxypass"].Value);
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)