recieving HTTP从PHP文件发布回送应答(发送帖子做工精细,它的接收,我想不通) [英] recieving HTTP POST echo response from a PHP file (sending the POSTS works fine, it's the receive that I can't figure out)
问题描述
因此,作为标题暗示我的问题越来越为我做一个HTTP POST的响应。
应该怎样发生的事情是我送了一堆的变数,PHP的检查数据库他们和发回给我的结果(如回声页面)。
So as the title suggest my problem is getting a response to a HTTP POST I'm making. What SHOULD be happening is I send a bunch of variables, the PHP checks the database for them and sends back to me the result (as an echo to the page).
下面是Android code:
Here is the android code:
public class CheckChallenge extends AsyncTask<String, Void, String>
{
@Override
protected String doInBackground(String... urls)
{
String response = "";
try
{
URL = urls[0];
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("victim",NetPlay.myId));
// need to return these to an array
nameValuePairs.add(new BasicNameValuePair("rival",rivalid));
nameValuePairs.add(new BasicNameValuePair("word","null"));
nameValuePairs.add(new BasicNameValuePair("won","0"));
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost("http://www.hanged.comli.com/check-rival.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse execute = httpclient.execute(httppost);
HttpEntity entity = execute.getEntity();
//InputStream is = entity.getContent();
//mText.setText(is.toString());
Log.i("postData", execute.getStatusLine().toString());
//HttpEntity entity = response.getEntity();
}
catch(Exception e)
{
Log.e("log_tag", "Error in http connection"+e.toString());
}
return response;
}
@Override
protected void onPostExecute(String result)
{
// CHECK ENTIRE DATABASE FOR MY ID //
// IF MY ID IS THERE THEN THAT MEANS IVE CHALLENGED SOMEONE //
}
}
下面是我认为这是确定只包括本的完整性PHP:
$连接= mysql_connect($ MYSQL_HOST,$ mysql_user,$ mysql_password)或死亡(无法连接);
mysql_select_db($ mysql_database,$连接)或死亡(不能选择DB);
在session_start();
Here is the PHP which I think is ok just including this for completeness: $connect = mysql_connect("$mysql_host", "$mysql_user", "$mysql_password")or die("cannot connect"); mysql_select_db("$mysql_database", $connect)or die("cannot select DB"); session_start();
$victim = $_POST['victim'];
$rival = $_POST['rival'];
$word = $_POST['word'];
$won = $_POST['won'];
$query = "SELECT rival FROM currentgames";
$result = mysql_query($query);
if (!$result)
{
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0)
{
echo "No rows found, nothing to print so am exiting";
exit;
}
while ($row = mysql_fetch_assoc($result))
{
echo $row["rival"];
}
任何帮助,这将是非常美联社preciated,试图让我的头围绕这一切的HTTP发布的东西。
Any help with this would be very appreciated, trying to get my head around all this HTTP POSTing stuff.
推荐答案
发送一个HTTP请求和读回HTTP响应的例子:
Example of sending an HTTP request and reading back the HTTP response:
String res = "";
String url = "http://www.domain.com/youscript.php";
URL urlObj = new URL(url);
URLConnection lu = urlObj.openConnection();
// Send data - if you don't need to send data
// ignore this section and just move on to the next one
String data = URLEncoder.encode("yourdata", "UTF-8");
lu.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(lu.getOutputStream());
wr.write(data);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(lu.getInputStream()));
String line = "", res = "";
while ((line = rd.readLine()) != null) {
res += line;
}
wr.flush();
wr.close();
System.out.println(res);
这篇关于recieving HTTP从PHP文件发布回送应答(发送帖子做工精细,它的接收,我想不通)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!