gpt4 book ai didi

java - 从谷歌应用程序引擎发送post请求到php

转载 作者:行者123 更新时间:2023-12-01 14:11:38 26 4
gpt4 key购买 nike

我在 GAE 中有一些 servlet,从 Android 应用程序调用;我想使用 xampp 将 POST 请求从这些 servlet 之一发送到本地主机中托管的 php。 servlet 在尝试读取响应时遇到 IOException。

这是我正在使用的示例 servlet 的代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String result = "";

try {
URL url = new URL("http://172.25.3.50:80/tempofinito/prueba.php");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setDoInput(true);

// Send
DataOutputStream wr = new DataOutputStream (
con.getOutputStream ());
wr.writeBytes ("prueba=" + URLEncoder.encode("message","UTF-8"));
wr.flush ();
wr.close ();

// Response
InputStream is = con.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
StringBuffer resp = new StringBuffer();
while((line = rd.readLine()) != null) {
resp.append(line);
resp.append('\r');
}
rd.close();
result = resp.toString();

} catch (MalformedURLException e) {
result = "malformed";
} catch (IOException e) {
result = "ioexception";
}

// Sends result to Android APP
PrintWriter out = response.getWriter();
out.println(result);
}

这是 php 文件:

<?php
$variable = $_POST["prueba"];
echo "ESTO ES UNA PRUEBA ".$variable;
?>

这是 Android 代码:

new AsyncTask<Void, Void, String>() {
protected String doInBackground(Void... params) {

HttpClient client = new DefaultHttpClient();
HttpPost postMethod = new HttpPost(Globals.serverURL + "/prueba");
String result = "";

try {
// Ignore this ->
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
nameValuePairs.add(new BasicNameValuePair("UserName", Globals.user));
nameValuePairs.add(new BasicNameValuePair("Pass", Globals.encrypt(Globals.pass)));
nameValuePairs.add(new BasicNameValuePair("Mode", "user"));
// <-

postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(postMethod);

HttpEntity entity = response.getEntity();

result = EntityUtils.toString(entity);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return result;
}

因此,APP 调用 servlet“prueba”。该 servlet 只是尝试向 php 文件发送 POST 请求,但在“//Response”部分遇到 IOException。我想我做错了什么,因为如果我从 servlet 复制相同的代码并将其粘贴到 Android 应用程序中,而不是上面的代码,它就可以正常工作。

我应该在 Google App Engine 中以不同的方式执行此操作吗?

最佳答案

这是防火墙的一个愚蠢问题,它阻止了连接。

关于java - 从谷歌应用程序引擎发送post请求到php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18494152/

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