перезапустите клиентский POST-запрос с заголовком и JSON - PullRequest
2 голосов
/ 14 декабря 2011

Не могли бы вы прокомментировать, что не так с этим кодом перезагрузки на стороне клиента.

Необходимо:

  1. Добавить заголовок HTTP X-MF-Auth-Token со значением token
  2. Поместить файл JSON в тело HTTP-запроса
  3. Сделать POST-запрос к серверу

Почтовый запрос генерирует ошибку «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;
    }

Ответы [ 2 ]

1 голос
/ 08 февраля 2014

Вы можете использовать JSONObject вместо формы:

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);
0 голосов
/ 15 декабря 2011

я думаю, что вы не добавляете X-MF-Auth-Token в заголовок.

попробовать

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);
...