Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/41: Рейтинг темы: голосов - 41, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
1

Формировать Домином Get/put Запросы

03.12.2014, 14:51. Показов 7576. Ответов 11
Метки нет (Все метки)

Есть задача, чтобы агент по какому-то событию формировал GET/PUT запросы такая себе синхронизация со сторонней внешней системой.
Я чаще всего делал через прослойку - ява библиотеку, где нужную мне функцию вызывал скриптом и орудовал потом с полученной стрингой.
Но делал так только GET запросы

а нет у кого такой библиотеке с PUT запросами?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2014, 14:51
Ответы с готовыми решениями:

Нужно формировать и посылать HTTP запросы как пост так и гет
Судьба сыграла злую шутку и пришлось из джавы вернуться на АСП, который забылся. Это было...

Хочу static "с домином и монашками"
Здравствуйте. class My_class { Any_type x; }; Объект х будет одинаковым у объектов этого...

Get and Put
ребята помогите исправить методы get and put. Там нужно переделать под (i-1) (j-1) в общем под...

Put / Get Extra
A1.class Intent in = new Intent(a1.this, a2.class); startActivity(a2); ...

__________________
11
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
03.12.2014, 15:41 2
http://stackoverflow.com/questions/1051004...tpurlconnection
чуть поподробней
http://stackoverflow.com/questions/1932055...nection-in-java

org.apache.http
http://hc.apache.org/httpcomponents-client...ds/HttpPut.html
пример
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
03.12.2014, 15:55 3
еще POST http://www.mkyong.com/java/how-to-send-htt...etpost-in-java/
и объяснение
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
08.12.2014, 10:23 4
спасибо, помогло
а с кодировкой не поможете?
если ответ JSON
то имею такое от GET


{"personid":"27","plastname":"Р?оваленко","pfirstnam e":"Р?нтон","psurname":" ","isuser":"1","pilogin":"toxarat@gmail.com","pipassword":"U vV4THj8","caid":"22","caidname":"Р?йшон","rspostid":"187 ","rspostidname":"Р?РєРєС?Р»С?тиС?С‚","ppsex":"0","persone mail":"toxarat@gmail.com","pstatus":"0"}
пофиг что делаю
conn.setRequestProperty("Content-Type", "UTF-8");
conn.setRequestProperty("Content-Type", "application/json");
и прочее

строка не меняется, видно что русский идёт в двухбайтовой кодировки, как-то можно всю эту строку сразу преобразовать нормально?
странно что любой браузер показывает подобные GET запросы корректно
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
08.12.2014, 11:05 5
есть чисто нотусячие заморочки
возможно это они
0
0 / 0 / 0
Регистрация: 14.01.2009
Сообщений: 257
08.12.2014, 11:28 6
судя по картинке кодировок, которую я выкладывал ранее на форуме, у тебя идет преобразование UTF8 в Win1251
данный GET запрос откуда получаешь? из Java? По-умолчанию java выставляет именно Win1251 кодировку как для всего агента/либы, так и по отдельности для каждого java файла. Иногда и это влияет на получаемую кодировку
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
08.12.2014, 13:40 7
Цитата Сообщение от erdi
судя по картинке кодировок, которую я выкладывал ранее на форуме, у тебя идет преобразование UTF8 в Win1251
данный GET запрос откуда получаешь? из Java? По-умолчанию java выставляет именно Win1251 кодировку как для всего агента/либы, так и по отдельности для каждого java файла. Иногда и это влияет на получаемую кодировку
да походу так и есть
плюнул на всё написал свой конвертер
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
08.12.2014, 15:38 8
чё-то я совсем запутался, конвертер не помогает, часть букв идёт не так
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
08.12.2014, 17:15 9
вроде бы разобрался, ява действительно возвращает в кодировке 1251
преобразование на клиенте происходит нормально, а вот на сервере нет
пока не выставил везде дефаултовый язык как русский сервер нормально преобразовывать не мог
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
08.12.2014, 17:38 10
вроде бы разобрался, ява действительно возвращает в кодировке 1251
как пр-ло берет за основу настройки ОС
кот. в русской виндятке - 1251
можно принудительно преобразовывать <!--shcode--><pre><code class=java>final String name =
new String(request.getParameter("name").getBytes("iso-8859-1"), "UTF-8");[/CODE]но необходимо понимать причину искажений, иначе результат будет непредсказуем...
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
11.12.2014, 17:28 11
Цитата Сообщение от lmike
как пр-ло берет за основу настройки ОС
кот. в русской виндятке - 1251
можно принудительно преобразовывать <!--shcode--><pre><code class=java>final String name =
new String(request.getParameter("name").getBytes("iso-8859-1"), "UTF-8");[/CODE]но необходимо понимать причину искажений, иначе результат будет непредсказуем...
на клиенте это работает, на сервере нет
уже начинаю думать что на 64 битке это такая же проблема как с ODBC
0
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 49
23.12.2014, 09:39 12
мой рабочий пост файла с параметрами апачевской либой . см по кодировке-может подойдет


.SpoilerTarget">Спойлер: Раскрывающийся Текст


Код
 public static boolean SendPost(String url, String filepath, String docname,
String docnumber, String docdate, String er[]) {
boolean result = false;

XPathFactory xpathFactory = XPathFactory. newInstance();
XPath xpath = xpathFactory.newXPath();

try {

CloseableHttpClient httpclient = HttpClients.createDefault();

try {
HttpPost httppost = new HttpPost(url);

// httppost .setHeader("Content-Type",
// "multipart /form-data; charset=UTF-8");
FileBody bin = new FileBody(new File(filepath));
StringBody saction = new StringBody("document-add" ,
ContentType. TEXT_PLAIN);
StringBody sdocname = new StringBody(docname,
ContentType. TEXT_PLAIN.withCharset(Charset
. forName("UTF-8")));
StringBody sdocnumber = new StringBody(docnumber,
ContentType. TEXT_PLAIN.withCharset(Charset
. forName("UTF-8")));
StringBody sdocdate = new StringBody(docdate,
ContentType. TEXT_PLAIN);

HttpEntity reqEntity = MultipartEntityBuilder.create().addPart(
"file", bin).addPart("action" , saction).addPart("name" ,
sdocname).addPart( "number", sdocnumber).addPart("date" ,
sdocdate)
// .setCharset(Charset.forName("UTF-8"))
.build();

httppost.setEntity(reqEntity);
System. out.println("executing request "
+ httppost.getRequestLine());

CloseableHttpResponse response = httpclient.execute(httppost);

try {
System. out
.println( "----------------------------------------" );
System. out
.println(response.getStatusLine().getStatusCode());
Integer statuscode = response.getStatusLine()
.getStatusCode();

if (statuscode != 200) {
System. out.println("ошибка -сервер вернул код "
+ statuscode);
er[0] = "ошибка -сервер вернул код " + statuscode;
result = false;
}

HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
System. out.println("Response content length: "
+ resEntity.getContentLength());

String xml = EntityUtils.toString(resEntity, "UTF-8");
System. out.println(xml);
InputSource source = new InputSource(new StringReader(
xml));

DocumentBuilderFactory dbf = DocumentBuilderFactory
. newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document document = db.parse(source);

String code = xpath.evaluate("/result/code" , document);
String msg = xpath
.evaluate( "/result/message", document);
String id = xpath.evaluate("/result/document_id" ,
document);

System. out.println("code=" + code);
System. out.println("message=" + msg);
System. out.println("id=" + id);

if (code.equals("ok" )) {
er[1] = id;
result = true;
} else {
er[0] = "сервер вернул " + msg;
result = false;
}

}
EntityUtils. consume(resEntity);
} finally {
response.close();
}
} finally {
httpclient.close();

}
} catch (ClientProtocolException ex) {
er[0] = "ошибка протокола или адреса " + url;
System. out.println("ошибка протокола или адреса " + url);
System. out.println(ex.toString());
result = false;
} catch (UnknownHostException ex) {
er[0] = "ошибка в адресе " + url;
System. out.println("ошибка в адресе " + url);
System. out.println(ex.toString());
result = false;
} catch (Exception e) {
er[0] = "неизвестная ошибка при отправке";
e.printStackTrace();
result = false;
} finally {

}
return result;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2014, 09:39

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

WebDav PUT
Всем привет! Прочитал замечательную статью: http://www.webdelphi.ru/2012/07/yandeks/ Все...

Assembler put
Начали изучать ассемблерные вставки в С++ как например в чаровском массиве изменять данные ? ...

PUT запрос
Полазив русскоязычные просторы интернета, не нашёл примера как отправить PUT запрос с параметрами...

Метод PUT
привет.Интересен этот метод загрузки файлов Как посылать этот запрос вроде разобрался:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.