2015-12-10 4 views
2

Я застрял на этом, я не понимаю, откуда эта проблема. API был успешно протестирован с Postman, но сбой в моем приложении.Не удалось отправить/загрузить данные на сервер с Android

Мой код:

public void posting() { 

    String title = titleArticle.getText().toString(); 

    // String category = spinnerCat.getCount(); 
    String content = contentArticle.getText().toString(); 

    // Instantiate Http Request Param Object 
    RequestParams params = new RequestParams(); 
    params.put("title", title); 
    params.put("content", content); 
    // Invoke RESTful Web Service with Http parameters 
    invokeWS(params); 
} 

/** 
* Method that performs RESTful webservice invocations 
* 
* @param params 
*/ 
public void invokeWS(RequestParams params) { 

    // Show Progress Dialog 
    prgDialog.show(); 

    AsyncHttpClient client = new AsyncHttpClient(); 
    client.post("http://openetizen.com/api/v1/articles", params, new AsyncHttpResponseHandler() { 
     @Override 
     public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
      // Hide Progress Dialog 
      prgDialog.hide(); 

      try { 
       JSONObject obj = new JSONObject(new String(responseBody)); 
       if (obj.getString("status").equalsIgnoreCase("success")) { 
        Toast.makeText(getApplicationContext(), "Artikel berhasil diunggah!", Toast.LENGTH_LONG).show(); 
        Intent i = new Intent(PostingActivity.this, MainActivity.class); 
        startActivity(i); 
       } else { 
        errorMsg.setText(obj.getString("error_msg")); 
        Toast.makeText(getApplicationContext(), obj.getString("error_msg"), Toast.LENGTH_LONG).show(); 
       } 

      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       Toast.makeText(getApplicationContext(), "Error Occured [Server's JSON response might be invalid]!", Toast.LENGTH_LONG).show(); 
       e.printStackTrace(); 
       Log.e("ERROR", "Response"); 


      } 
     } 

     @Override 
     public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 
      // Hide Progress Dialog 
      prgDialog.hide(); 
      // When Http response code is '404' 
      if (statusCode == 404) { 
       Toast.makeText(getApplicationContext(), "Requested resource not found", Toast.LENGTH_LONG).show(); 
      } 
      // When Http response code is '500' 
      else if (statusCode == 500) { 
       Toast.makeText(getApplicationContext(), "Something went wrong at server end", Toast.LENGTH_LONG).show(); 
      } 
      // When Http response code other than 404, 500 
      else { 
       Toast.makeText(getApplicationContext(), "Posting failed", Toast.LENGTH_LONG).show(); 
       // Toast.makeText(getApplicationContext(), "Unexpected Error occcured! [Most common Error: Device might not be connected to Internet or remote server is not up and running]", Toast.LENGTH_LONG).show(); 
      } 
     } 

И ошибка здесь:

else { Toast.makeText(getApplicationContext(), "Posting failed", Toast.LENGTH_LONG).show(); 
       // Toast.makeText(getApplicationContext(), "Unexpected Error occcured! [Most common Error: Device might not be connected to Internet or remote server is not up and running]", Toast.LENGTH_LONG).show(); 
      } 

Screen Shoot Posting failed on application

Screen Shoot Success on Postman

Что я должен сделать, чтобы исправить эту проблему? Спасибо.

+2

являются вы уверены, что это почтовый тип Webservice, ceck, и я думаю, что его служба типа Get – santoXme

+0

я не слишком много знаю об этом, но я думаю, что вы должны зарегистрировать метод Throwable.getMessage() в методе onFailure() и опубликовать это, вероятно, люди быть в состоянии lp more – JRowan

ответ

0

я попытался отправить в Params, как вы написали, и получить этот ответ

400 Bad Request Show explanation Loading time: 645 
Request headers 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36 
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo 
Content-Type: multipart/form-data 
Accept: */* 
Accept-Encoding: gzip, deflate 
Accept-Language: en-US,en;q=0.8 
Response headers 
Date: Thu, 10 Dec 2015 08:30:07 GMT 
Server: Apache 
X-Request-Id: 8e80edd8-ff10-44f2-9235-6b8d307c179b 
X-Runtime: 0.002612 
X-Powered-By: Phusion Passenger 4.0.58 
Content-Length: 38 
Status: 400 Bad Request 
Connection: close 
Content-Type: application/json; charset=utf-8 

если вы пытались сделать, чтобы соединиться в ссылке, как это http://openetizen.com/api/v1/articles?title=test&content=test его будет работать нормально enter image description here

+0

Конечно, если HTTP GET Method будет работать нормально, но я хочу, чтобы POST все еще застрял. – cevysays

+0

это проблема обслуживания, веб-сервис позволяет вам получать не сообщение, чтобы решить проблему, просто изменив ее, –