[英]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對象 。
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.