后端服务器上缺少Android HTTPS $ _POST变量

时间:2013-07-08 13:10:24

标签: android ssl

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

我已经在一个简单的html表单中测试了SSL网址,其中action =是我的安全网址。在此测试中,后端服务器按预期接收后变量。

那么当我使用安全网址时,什么会导致我的DefaultHttpClient不发送post vars?

感谢任何想法。

1 个答案:

答案 0 :(得分:0)

这可能会帮助您了解发布内容:

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;

} 
}

并调用另一个函数在类中发布:

   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;
}

最后从您的主要活动发布,如下所示:

     String test= test.getText().toString();
            String id= id.getText().toString();
            UserFunctions userFunction= new UserFunctions();                
            json = userFunction.getProduct(test, id);