Affichage JSON/XML à l'aide de android-async-http (loopj)
Je suis en utilisant android-async-http et vraiment aimer. J'ai couru dans un problème avec l'Affichage des données. J'ai pour publier des données de l'API dans le format suivant: -
<request>
<notes>Test api support</notes>
<hours>3</hours>
<project_id type="integer">3</project_id>
<task_id type="integer">14</task_id>
<spent_at type="date">Tue, 17 Oct 2006</spent_at>
</request>
Que par la documentation, j'ai essayé de le faire à l'aide de RequestParams
, mais c'est un échec. Est-ce tout autre moyen de le faire? Je peux POSTER équivalent JSON trop. Des idées?
Vous devez vous connecter pour publier un commentaire.
Loopj POST exemples étendue de leur Twitter exemple:
À poster normalement via
RequestParams
:De post JSON:
ContentType.APPLICATION_JSON.getMimeType()
pour obtenir"application/json"
constante.@Timothée réponse n'a pas de travail pour moi.
J'ai défini le
Content-Type
de laStringEntity
pour le faire fonctionner:Bonne Chance 🙂
ContentType.APPLICATION_JSON.getMimeType()
pour obtenir"application/json"
constante.une meilleure façon de post json
$data = json_decode(file_get_contents("php://input"));
De post XML
il suffit d'écrire votre code xml ou json d'une chaîne et de l'envoyer au serveur, avec les en-têtes ou sans. et oui ensemble "Content-Type", "application/json"
Si quelqu'un a un problème qui httpclient envoyer en tant que
Content-Type: text/plain
, veuillez consulter ce lien: https://stackoverflow.com/a/26425401/361100La loopj httpclient est quelque peu changé (ou a un problème) qui ne peut pas se substituer
StringEntity
natif de Type de Contenu pourapplication/json
..post(...);
méthode.Vous pouvez ajouter la chaîne JSON comme un InputStream de quelque sorte - j'ai utilisé le ByteArrayStream, puis en passant à la RequestParams vous devez définir la correctMimeType
Juste faire JSONObject puis de le convertir en Chaîne de caractères "someData" et envoyez simplement avec "ByteArrayEntity"
Il fonctionne très bien pour moi.
De post fichier xml sur un serveur php :
}
Après l'ajout d'android-async-http-1.4.9.jar android studio,
allez construire.gradle et d'ajouter :
compile 'com.loopj.android:android-async-http:1.4.9'
en vertu de dépendancesEt sur AndroidManifest.xml ajouter:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />