JSON Object senden

  • Antworten:5
  • Bentwortet
Stefan S.
  • Forum-Beiträge: 560

05.11.2012, 07:48:08 via Website

Hallo NG

Ich habe ein Problem beim Senden eines JSON-Objects an eine aspx-Seite. Ich erhalte immer einen Bad Request zurück.

Mein Code:
1private void SendData(JSONObject obj)
2{
3 //Ist seine https Seite
4 SingleClientConnManager mgr = new SingleClientConnManager(client.getParams(), registry);
5 DefaultHttpClient httpClient = new DefaultHttpClient(mgr, client.getParams());
6 StringEntity se;
7
8try {
9 se = new StringEntity(obj.toString());
10 se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
11 se.setContentType("application/json;charset=UTF-8");
12 HttpPost httpPost = new HttpPost(url);
13 httpPost.setHeader("Content-type", "application/json");
14 httpPost.setEntity(se);
15
16
17
18 HttpResponse response = httpClient.execute(httpPost);
19 String temp = EntityUtils.toString(response.getEntity());
20 Log.v("tag", temp);
21
22 } catch (UnsupportedEncodingException e) {
23 // TODO Auto-generated catch block
24 e.printStackTrace();
25 } catch (ClientProtocolException e) {
26 // TODO Auto-generated catch block
27 e.printStackTrace();
28 } catch (IOException e) {
29 // TODO Auto-generated catch block
30 e.printStackTrace();
31 }
32
33}

Habe ich was falsch gemacht?

Gruss
Stefan

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

05.11.2012, 08:22:53 via Website

Was mir da jetzt grade fehlt ist die Zuordnung des JSON Strings zu einem POST-Parameter.

Siehe: http://stackoverflow.com/questions/7181534/http-post-using-json-in-java

Probier mal:

1se = new StringEntity("parameter=" + obj.toString());

wobei parameter der Name des Parameters ist, den der Server erwartet.

Antworten
Stefan S.
  • Forum-Beiträge: 560

05.11.2012, 08:34:43 via Website

Hat leider nichts gebracht.
Muss im dem Server noch irgend etwas beibringen damit kein Bad Request entsteht?
Ich lese das Zeugs noch gar nicht aus. Ich sende es erst mal an diese URL.

Antworten
Stefan S.
  • Forum-Beiträge: 560

05.11.2012, 13:14:58 via Website

Ich habe es nun geschafft den Aufruf so zu machen, dass der Server die Anfrage versteht.
Nun stellt ich das Problem, wie ich die Daten wieder rausbekomme :grin:

Ich rufe ja nicht direkt eine Methode auf sondern im Querystring sage ich der Page (aspx), dass nun Json-Objecte vorhanden wären.
Weisst du ev. wie ich diese auslesen kann?
Dieser Aufruf
this.Request.Content.ReadAsStringAsync().Result;
führt zu einem Error 500

Antworten
Stefan S.
  • Forum-Beiträge: 560

06.11.2012, 14:47:09 via Website

Ich habs geschafft.
Für Alle die es interessiert:
Hat man ein JSON-Object vie httppost an eine aps.net Seite geschickt kann man die Werte mittels Request.Headers wieder auslesen.

Antworten