gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:13 24 4
gpt4 key购买 nike

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

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

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

感谢您的任何想法。

最佳答案

这可能会帮助您了解如何发布:

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

最后像这样从您的主要 Activity 中发布它:

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

关于后端服务器上缺少 Android HTTPS $_POST 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17527517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com