簡體   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