Вы можете использовать библиотеку для создания контента XML и передать его в виде строки метод setEntity
, как описано ниже:
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://...");
httpPost.setEntity(new StringEntity("<str val=\"On\" />"));
httpPost.setHeader("Accept", "application/xml");
httpPost.setHeader("Content-type", "application/xml");
Что касается способа использования XML для Android, вы можете посмотреть на эти ссылки: http://www.ibm.com/developerworks/opensource/library/x-android/ и https://xjaphx.wordpress.com/2011/10/27/android-xml-adventure-create-write-xml-data/.
Вы можете использовать соевый подход с рамками REST высокого уровня, как Restlet, как описано ниже:
ClientResource cr = new ClientResource("http://...");
RequestContentBean bean = new RequestContentBean();
bean.setIs("WritablePoint")
bean.setWritable(true);
bean.setStatus("ok");
bean.setVal("Off");
cr.put(bean);
Классом RequestContentBean
является определенным пользователем класса (бобы/POJO, который содержит данные, будет отправлено на запрос:
public class RequestContentBean {
private String is;
private boolean writable;
private String status;
private String val;
// Getters and setters
(...)
}
в этом случае, вы можете использовать конвертор сервис Restlet для преобразования компонент с ожидаемым содержанием XML для получения более подробной информации, вы можете посмотреть по этой ссылке:. http://restlet.com/technical-resources/restlet-framework/guide/2.3/editions/android/sample ,
Вы можете заметить, что если вы хотите отправить непосредственно XML-строку вместо этого, вы можете использовать следующий код (я думаю, что это то, что может вам больше по душе - подход к компоненту может оказаться немного сложным на первом зрение):
ClientResource cr = new ClientResource("http://...");
cr.put(new StringRepresentation(
"<str val=\"On\" />",
MediaType.APPLICATION_XML));
Вы можете скачать Android издание рамках Restlet по следующему адресу: http://restlet.com/downloads/current/. В поле выбора выберите значение Android
.
Если вы используете Maven, вы можете добавить это в ваших зависимости:
<dependencies>
(...)
<dependency>
<groupId>org.restlet.gae</groupId>
<artifactId>org.restlet</artifactId>
<version>2.3.1</version>
</dependency>
(...)
</dependencies>
<repositories>
<repository>
<id>maven-restlet</id>
<name>Public online Restlet repository</name>
<url>http://maven.restlet.com</url>
</repository>
</repositories>
1. Что ваше требование REST API? 2. Вы не вызываете put.execute() ;. 3. В android вы должны поместить свой HTTP-запрос в отдельный поток. –