2014-12-22 3 views
0

Это моя первая попытка использования веб-API. Я пытаюсь реализовать этот PRIVO API для отображаемого имени https://github.com/Privo/PRIVO-Hub/wiki/Web-Services-API-Reference#update-user-display-name. Как вы можете видеть, примеров объяснений и примеров кода мало.HTTP GET или HTTP POST или HTTP PUT, Android

То, что я пытаюсь сделать, это использовать HTTP GET для получения действительного ответа, который указывает, что имя является правильным форматом, и затем я должен сохранить это отображаемое имя на наших серверах google. Мне нужна помощь только в первом тайме. Я выясню, как сохранить на облачных серверах позже.

Проблема, с которой я сталкиваюсь, заключается в том, что я не уверен, как это использовать HTTP GET, и я не уверен на 100%, что я не должен использовать POST или PUT. Это то, что я до сих пор, пожалуйста, дайте мне знать, что я делаю неправильно.

AsyncHttpClient client = null; 
String authorizationHeader = "token_type", "" + " " + "access_token", ""); 
client.addHeader("Authorization", authorizationHeader); 
client.addHeader("Content-type", "application/json"); 
client.addHeader("Accept", "application/json"); 
String requestBody = "displayName=" + "hardcodedDisplayName"; 
String requestURL = "https://privohub.privo.com/api/" + "account/public/saveDisplayName?" + requestBody; 
client.get(requestURL, new ResponseHandler(myClass.this, "displayName", new OnResponseHandler() { 
@Override 
public void onSuccess(int statusCode, String apiName, JSONObject response) { 
    if (statusCode == 200) { 
     Log.i(TAG, "Seems to be working") 

    } 
} 

@Override 
public void onFailure(int statusCode, String apiName, String responseMessage) { 
    Log.i(TAG, "Fail: " + responseMessage); 
} 

@Override 
public void onFailure(int statusCode, String apiName, JASONArray errorResponse) { 
    Log.i(TAG, "Fail: " + errorResponse); 
} 

@Override 
public void onFailure(int statusCode, String apiName, JSONObject errorResponse) { 
    if (errorResponse != null) { 
     Log.i(TAG, "Fail: " + errorResponse); 
    } 
} 

})); 

Я получаю следующий ответ в результате приведенного выше кода

{ "сообщение": "Объект не найден", "validationErrors": [], "responseTimestamp": 1419278367177, "TOTALCOUNT" : -1, «status»: «failed», «resultCount»: - 1, «entity»: null)

Что означает этот ответ? Не удалось выполнить onFailure (int statusCode, String apiName, JSONObject errorResponse), а код ошибки - 404

Заранее спасибо!

ответ

1

Вы должны использовать любой метод, о котором говорит API-документация, которую вы должны использовать. Который в этом случае не является GET или POST, но PUT!

+0

Я вижу эту ошибку сейчас. Однако можете ли вы привести пример? Является ли методология похожей на GET? Могу я просто изменить, чтобы поставить, что я имею в виду? – portfoliobuilder

+0

Да, client.put() должен работать. Возможно, это необходимо для кодирования параметра как объекта RequestParam вместо добавления к URL-адресу. – wvdz

+0

Это мое первое занятие. Можете ли вы показать мне пример того, что вы подразумеваете под кодированием параметра как объекта RequestParam? – portfoliobuilder