0

我已经成功使用 DefaultHttpClient 与我的后端 PHP 服务器通信一段时间了,现在希望使用共享 SSL。但是,当我使用我的网络主机的共享 ssl url 时,我的 Android 应用程序似乎没有传输 HTTP POST 变量。该应用程序肯定会连接到我的后端服务器,因为我可以读取发送回我的应用程序的 JSON 对象。后端服务器只是读取 post vars 并将接收到的 POST 变量作为 JSON 对象发送回应用程序。

我已经以简单的 html 形式测试了 SSL url,其中 action= 是我的安全 url。在此测试中,后端服务器按预期接收帖子变量。

那么,当我使用安全 url 时,是什么导致我的 DefaultHttpClient 不发送帖子变量?

感谢您的任何想法。

4

1 回答 1

0

This will might help you to get a idea about posting:

public class JSONParser {

static InputStream is = null;
static JSONObject jObj = null;
static String json = "";

// constructor
public JSONParser() {

}
public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {

    // Making HTTP request
    try {
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(new UrlEncodedFormEntity(params));

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        json = sb.toString();
        Log.e("JSON", json);
    } catch (Exception e) {
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }

    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    // return JSON String
    return jObj;

} 
}

And call another function to post in a class:

   public JSONArray getProduct(String id, String type) {
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair(type, id));
    JSONArray json = jsonParser.getJSONFromUrl(productURL, params);
    // return json
    // Log.e("JSON", json.toString());
    return json;
}

and lastly post it from your main activity like this:

     String test= test.getText().toString();
            String id= id.getText().toString();
            UserFunctions userFunction= new UserFunctions();                
            json = userFunction.getProduct(test, id);
于 2013-07-08T13:41:52.850 回答