2013-08-26 49 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));

这是为我工作。

我认为该参数总是期待作为字符串没有任何其他类型。