2013-08-26 92 views
1

我在LoopJ AndroidAsyncHttp上的POST請求有問題。 我定義的參數不是由客戶端發送的。Android - LoopJ AndroidAsyncHttp - 無POST參數

就像在例子我已經建立了一個自己的階級 「RESTClient實現」 爲AsyncHTTPClient

public class RestClient { 
    private static final String BASE_URL = "http://www.myserver.de/picbox/"; 

    private static AsyncHttpClient client = new AsyncHttpClient(); 

    /** 
    * GET-Request 
* @param relativeURL 
* @param params 
* @param responseHandler 
*/ 
public static void get(String relativeURL, RequestParams params, AsyncHttpResponseHandler responseHandler) { 
     //System.out.println(getAbsoluteUrl(relativeURL)); 
     client.get(getAbsoluteUrl(relativeURL), params, responseHandler); 
     client.getHttpClient().getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true); 
    } 


    /** 
    * POST-Request 
* @param relativeURL 
* @param params 
* @param responseHandler 
*/ 
public static void post(String relativeURL, RequestParams params, AsyncHttpResponseHandler responseHandler) { 
     client.post(getAbsoluteUrl(relativeURL), params, responseHandler); 
     client.getHttpClient().getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true); 
    } 


    /** 
    * Construct final URL for request 
* @param relativeUrl 
* @return 
*/ 
private static String getAbsoluteUrl(String relativeUrl) { 
     return BASE_URL + relativeUrl; 
    } 
} 

在我的活動我用的是客戶這樣說:

私人布爾uploadImage(){

String img64 = encodeTobase64(bitmap); 
    Log.d(TAG, img64); 

    RequestParams params = new RequestParams(); 
    params.put("userid", userID); 
    params.put("username", username); 
    params.put("img64", img64); 

    RestClient.post("pictures/upload", params, new AsyncHttpResponseHandler() { 

     // If request is successful 
     @Override 
     public void onSuccess(String response) { 
      Log.d(TAG, response); 
      // 
     } 

     // If request was not succesful, show error 
     @Override 
     public void onFailure(Throwable error, String content) { 
      Log.d(TAG, error.toString()); 
     } 
    }); 
    return true; 

} 

在服務器端我有一個PHP腳本,回答請求。 目前劇本剛剛返回$ _ POST和$ _REQUEST變量:

var_dump($_POST); 
var_dump($_REQUEST); 

請求作品和的onSuccess()方法達到,但作爲迴應,我只是得到

array(0){ 

} 
array(0){ 

} 

它似乎PARAMS只是不AsyncHTTPClient :( 變量用戶ID,用戶名和img64發送正確初始化爲CALSS變量,而不是空。 我不知道,可能是什麼問題。

希望得到一些幫助。 Max

回答

1

我有同樣的問題。

剛剛嘗試添加爲字符串不是INT如下

params.put( 「用戶id」,將String.valueOf(用戶ID));

這是爲我工作。

我認爲該參數總是期待作爲字符串沒有任何其他類型。