Korzystam z poniższego kodu, aby wysłać żądanie http POST, które wysyła obiekt do usługi WCF. Działa to dobrze, ale co się stanie, jeśli moja usługa WCF będzie wymagać innych parametrów? Jak mogę je wysłać z mojego klienta Android?Wysyłanie żądania HTTP POST JSON z Androida
Jest to kod pisałem do tej pory:
StringBuilder sb = new StringBuilder();
String http = "http://android.schoolportal.gr/Service.svc/SaveValues";
HttpURLConnection urlConnection=null;
try {
URL url = new URL(http);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
urlConnection.setUseCaches(false);
urlConnection.setConnectTimeout(10000);
urlConnection.setReadTimeout(10000);
urlConnection.setRequestProperty("Content-Type","application/json");
urlConnection.setRequestProperty("Host", "android.schoolportal.gr");
urlConnection.connect();
//Create JSONObject here
JSONObject jsonParam = new JSONObject();
jsonParam.put("ID", "25");
jsonParam.put("description", "Real");
jsonParam.put("enable", "true");
OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream());
out.write(jsonParam.toString());
out.close();
int HttpResult =urlConnection.getResponseCode();
if(HttpResult ==HttpURLConnection.HTTP_OK){
BufferedReader br = new BufferedReader(new InputStreamReader(
urlConnection.getInputStream(),"utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
System.out.println(""+sb.toString());
}else{
System.out.println(urlConnection.getResponseMessage());
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(urlConnection!=null)
urlConnection.disconnect();
}
to łącze. Próbujesz wysłać inne parametry, cios linku da ci demonstrację jak możesz je wysłać po zakodowaniu http://www.xyzws.com/Javafaq/how-to-use-httpurlconnection-post-data-to-web -server/139 –