繁体   English   中英

如何检索从HTTP POST到PHP的两个字段值?

[英]How do I retrieve two field values received from an HTTP POST to PHP?

这是我想要做的。

从我的Android应用程序代码中,我进行如下所示的HTTP POST

HttpPost httppost = new HttpPost("http://xyz.com/Retrieve.php");

PHP代码应该发送回图像和URL。

$q=mysql_query("SELECT image, url FROM testblob WHERE id = 'id[0]'");
list($data) = mysql_fetch_row($q);
echo $data;

现在,在我的Android代码中,我将执行以下操作,并且可以从响应中完美地检索图像,但是我也该如何检索URL。

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();

我按以下方式检索图像,并且此部分有效。

ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int n = 0;
while ((n=is.read(buf))>=0)
    {
    baos.write(buf, 0, n);
    }
    is.close();
    byte[] bytes = baos.toByteArray();
    Bitmap bitmap2 = null;
    bitmap2 = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

所以我想知道在InputStream中是否同时接收到图像和url是对象,如果是,如何从中检索URL?

谢谢你的帮助。

这会增加一些开销,但是如果您向服务器发出2个请求,则可能会更容易。 这样,您不必担心分离字节。

对于URL请求,返回文本响应。

对于图像请求,返回字节(如您现在所做的那样)。

您在这里有几种选择。 这是一个。 您可以使用json_encode()对图像和URL进行编码,而不是简单地从PHP中回显图像的字节。

例如:

$q = $pdo->prepare("SELECT image, url FROM testblob WHERE id = ?");
$q->execute(array($id[0]));
header("Content-Type: application/json");
echo json_encode($q->fetch(PDO::FETCH_NUM));

在Java方面,您将从URL读取响应,然后将其适当地解析为JSON对象

我已经更新了示例,以使用PDO代替旧的数据库访问功能。 您可以在此处阅读PHP数据对象

1)您的php代码不使用post变量,因此您总是检索相同的图像。

2)设置输出类型后,您可以将图像流回到客户端;

$q=mysql_query("SELECT image FROM testblob WHERE id = '".$_POST['id']."'");
$row = mysql_fetch_row($q);
header("Content-Type: image/jpeg");
echo $row[0];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM