Comment envoyer une chaîne de données ( Que doit être le format de l'URL de chaîne P> La chaîne de retour correspond à la réponse du serveur sous la forme d'une représentation de chaîne des données JSON. p> jsonObject.tostring () code>) à une URL. Je veux écrire une méthode statique dans une classe UTIL pour le faire. Je veux que la méthode signature soit la suivante
String String String String PostData (String URL, String PostData) Jette SomecustomException Code> P>
EDIT H3>
Connexion actuelle UTIL H3>
package my.package;
import my.package.exceptions.CustomException;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URLDecoder;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
public class ConnectionUtil {
public static String postData(String url, String postData)
throws CustomException {
// Create a new HttpClient and Post Header
InputStream is = null;
StringBuilder sb = null;
String result = "";
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost();
httppost.setHeader("host", url);
Log.v("ConnectionUtil", "Opening POST connection to URI = " + httppost.getURI() + " url = " + URLDecoder.decode(url));
try {
httppost.setEntity(new StringEntity(postData));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
e.printStackTrace();
throw new CustomException("Could not establish network connection");
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "utf-8"), 8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line = "0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
throw new CustomException("Error parsing the response");
}
Log.v("ConnectionUtil", "Sent: "+postData);
Log.v("ConnectionUtil", "Got result "+result);
return result;
}
}
4 Réponses :
Essayez d'utiliser cette méthode où Strjsonrequest est la chaîne JSON que vous souhaitez poster et que la Strurl est l'URL à laquelle vous souhaitez publier le strjsonrequest et la méthode ConverTreamtostring () est comme Ci-dessous p>
Quelle est la méthode conversationtreamtostring code>?
Quel devrait être le format URL? Je reçois un malformedurlexception code>
Je ne suis pas sûr de quelle est l'URL que vous obtenez dans le logcat vérifie une fois que c'est la même chose que vous avez passée
Selon la configuration de votre code côté serveur, un exemple de format de l'URL où votre serveur a une page PHP pour gérer l'appel de l'API serait le suivant:
http://yoururl.com/demo.php
Le serveur accepte une connexion post. Donc, j'ai juste besoin de l'URL comme http://www.example.com/my_page.php code>, non?
Eh bien, voici mes pensées sur votre question: -
Premièrement, vous devez simplement envoyer les données au serveur à l'aide de Publier code> méthode. C'est facile et absolument possible dans Android également. Un simple code de code pour l'envoi de
post code> peut être comme: p>
String jsonData = EntityUtils.toString(serverResponse.getEntity());
Je n'utilise pas de forme. Le serveur veut simplement voir les données de chaîne. c'est tout.
@Phodu_insaan Même pour l'envoi de données de chaîne, vous devez envoyer des données post sur le serveur. Donc, vous n'avez pas besoin d'utiliser un formulaire pour envoyer des données de chaîne sur le serveur. Et si vous voulez simplement simplement envoyer des commandes, comme en passant un seul paramètre sur le serveur, vous pouvez également penser à utiliser Get Method. Je peux vous aider avec beaucoup.
Je fais presque la même chose. Au lieu de passer un urlencodedormenté code> je passe un
nouvelle stringentity code> avec mes données de chaîne. Je reçois un
nullpointException code>. Il suffit d'ajouter ma sortie de logcat à la question.
Oui, plz ajoutez votre sortie logcat ici .. Et je ne suis pas capable de vous mettre, comment passez-vous une stringentité? Veuillez ajouter votre code également qui effectue cette tâche .. Cela aidera à comprendre votre problème de manière meilleure ..
Je pense que dans votre code, le problème de base est causé par la façon dont vous utilisez espère que cela aide à résoudre votre problème. Merci. P> p> stringentity code> à
POST code> paramètres sur votre URL. Vérifiez si le code suivant aide à afficher vos données au serveur à l'aide de
stringentity code>.
Salut. Je pense que cela a aidé mais je reçois toujours une erreur d'exécution inconnueHostException. Je suis sûr que mon URL fonctionne et vérifiée de mon navigateur. Je reçois aussi la même erreur pour google.com ou exemple.com. Comment dois-je formater l'URL / URI? Je veux appuyer sur l'URL http://xyz.mysite.com/some_page.php/ code> et publier des données. Dois-je aussi spécifier le port?
Juste en utilisant 80. Donc, cela devrait être par défaut. Cela fonctionne maintenant et frappe le serveur. Merci.
Je pense qu'il y a un problème avec votre méthode postale envoi de stringentity à la fin du serveur .. Consultez ma dernière réponse et voyez si cela fonctionne ..