Как отправить запрос (и получить его) в формате XML от какого-либо веб-сервиса?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как отправить запрос (и получить его) в формате XML от какого-либо веб-сервиса?

Сообщение Anonymous »

Я работаю над веб-сайтом электронной коммерции с JSF 2.
Чтобы связаться с компанией, которая выполняет все операции с банками, мне нужно отправить им этот XML (это просто образец предоставлен от них):




1001734898
e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa832


1603662828
100
986
2010-07-14T15:50:11
PT


visa
A
1

https://www.dummyurl.du/dummypage.do?id ... vnidjfnvmd
1
true



Итак, прочитав много о том, как отправлять и получать XML, я создаю этот метод:

public String rent(){
//String folderAndFile = createTransaction();

//creating the HTTP Post
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("https://qasecommerce.cielo.com.br/servicos/ecommwsec.do");

try {
//Reading the file as an entity
FileEntity entity = new FileEntity(new File("/home/valter.silva/sample.xml"));
entity.setContentType("text/xml");
post.setEntity(entity);

HttpResponse response = client.execute(post);
HttpEntity httpEntity = response.getEntity();

System.out.println(EntityUtils.toString(httpEntity));

} catch (IOException e) {
e.printStackTrace();
}
return null;
}


Но результат всегда:

INFO: 001 Requisição inválida


Это означает, что мой .xml, который я отправляю, недействителен. По какой-то причине XML неправильный... но что?

Удобен ли способ отправки файла? Что я могу с этим поделать?

обновить
Я пробовал другой подход, но результат всегда один и тот же.. ., что-то не так с моим кодом?

//approach v1
public String rent(){
//String folderAndFile = createTransaction();

try {
File file = new File("/home/valter.silva/test.xml");
HttpPost post = new HttpPost("https://qasecommerce.cielo.com.br/servicos/ecommwsec.do");
post.setEntity(new InputStreamEntity(new FileInputStream(file),file.length()));
post.setHeader("Content-type", "text/xml; charset=ISO-8859-1");

//creating the HTTP Post
DefaultHttpClient client = new DefaultHttpClient();

HttpResponse response = client.execute(post);
HttpEntity httpEntity = response.getEntity();

System.out.println(EntityUtils.toString(httpEntity));

} catch (IOException e) {
e.printStackTrace();
}
return null;
}

//approach v2
public String rent(){
//String folderAndFile = createTransaction();

try {
File file = new File("/home/valter.silva/test.xml");
HttpPost post = new HttpPost("https://qasecommerce.cielo.com.br/servicos/ecommwsec.do");

//creating the HTTP Post
DefaultHttpClient client = new DefaultHttpClient();

String fileInString = fileToString("/home/valter.silva/test.xml");
InputStream inputStream=new ByteArrayInputStream(fileInString.getBytes());//init your own inputstream
InputStreamEntity inputStreamEntity=new InputStreamEntity(inputStream,fileInString.length());
post.setEntity(inputStreamEntity);

HttpResponse response = client.execute(post);
HttpEntity httpEntity = response.getEntity();

System.out.println(EntityUtils.toString(httpEntity));

} catch (IOException e) {
e.printStackTrace();
}
return null;
}


Подробнее здесь: https://stackoverflow.com/questions/179 ... eb-service
Ответить

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

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

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

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

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