2011-12-14 9 views
2

このクライアントサイドのレシートコードに何が問題なのかご意見ください。レシートクライアントサイドPOSTリクエスト(ヘッダとJSON付き)

ことが必要である:

  1. メイクPOSTリクエスト

ポスト要求が発生し、サーバーへのHTTPリクエストのボディにトークン値

  • 置きJSONファイルをHTTPヘッダーX-MF-Auth-Tokenを追加します。 "400"エラー。どうもありがとうございました!

     ClientResource cr = new ClientResource(servername + "/json/place"); 
    
         cr.getRequest().getAttributes().put("X-MF-Auth-Token", token); 
    
         Form form = new Form(); 
    
         form.add("Category", ""); 
         form.add("CategoryId", "A1EECAB9-3E66-4F14-92E9-465EDFB22BA7"); 
         form.add("Latitude", "0"); 
         form.add("Longitude", "0"); 
         form.add("Name", "Loremipsum"); 
         form.add("PlaceId", "00000000-0000-0000-0000-000000000099"); 
    
        cr.post(form, MediaType.APPLICATION_JSON); 
    
        if (cr.getStatus().isSuccess()) { 
         // Register Successful 
         Log.v("Register()", "Successeful"); 
         return true; 
        } else { 
         Log.v("Register()", "ERROR"); 
         return false; 
        } 
    
        } catch (ResourceException e) { 
         // Login Error 
        Log.v("AddPlace() error:", e.getStatus().toString()); 
        return false; 
        } 
    
  • 答えて

    0

    私はあなたがヘッダにX-MF-Auth-Tokenを追加しないていると思います。

    はあなたではなく、フォームのJSONObjectを使用することができます

    Form headers = (Form) cr.getRequest().getAttributes("org.restlet.http.headers"); 
    if (headers == null) { 
        headers = new Form(); 
        cr.getRequest().getAttributes.put("org.restlet.http.headers", headers); 
    } 
    headers.add("X-MF-Auth-Token", token); 
    
    +0

    ありがとうございました、これは便利ですが、まだ動作しません。 Content-TypeをJSONに設定する必要がありますが、Content-Type:application/x-www-form-urlencodedを送信します。何か案は?どうもありがとうございました。 – user1096826

    +0

    見てください:http://stackoverflow.com/questions/2033132/restlet-post-using-json – mfirry

    +0

    @mfirryこのリンクは、RESTletサーバー側の使用について説明しており、クライアント側については何も記述していません。 OPが求めていたのはクライアント側でした。 – JMTyler

    1

    を試してみてください。

    JSONObject jo = new JSONObject(); 
    try { 
        jo.add("Category", ""); 
        jo.add("CategoryId", "A1EECAB9-3E66-4F14-92E9-465EDFB22BA7"); 
        jo.add("Latitude", "0"); 
        jo.add("Longitude", "0"); 
        jo.add("Name", "Loremipsum"); 
        jo.add("PlaceId", "00000000-0000-0000-0000-000000000099"); 
    } catch (JSONException ex) {   
    } 
    cr.post(new JsonRepresentation(jo), MediaType.APPLICATION_JSON);