java - 你如何从一个用Java调用的php文件中获取返回值

标签 java php httpurlconnection

我在 Java(不是 Javascript)中使用 HttpURLConnection 来调用一个 PHP 文件,该文件在 mySQL 数据库中查找一个字段。在 PHP 中如何返回字段内容(字符串),在 Java 中如何接收它们?谢谢。给任何可以提供帮助的人都很棒。哈哈。

示例代码:

Java:

import java.net.HttpURLConnection;
import java.net.URL;
...
public static void Connect(String address){
    URL url = new URL("http://www.foo.com/getInfo.php?id=203&user=johndoe);
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    String = ??? // What do I need to do to get the string from the PHP file?
    con.disconnect();
}

PHP:

<?php

$theFile = "../db_user_password";
$f = fopen($theFile, 'r') or die("Could not access password file.");
$user = chop(fgets($f));
$pass = chop(fgets($f));
$name = chop(fgets($f));
if (strlen($name) == 0) {
    $name = 'some_db';
}
fclose($f);

$connect = mysql_pconnect("localhost", $dbuser, $dbpass) or
        die('Could not connect: ' . mysql_error());

mysql_select_db($name, $connect) or die("Could not find database");

$id = urldecode($_GET['id']);
$user = urldecode($_GET['user']);

$query = "SELECT data FROM autosave_table WHERE id='$id' AND user='$user';
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);

$updateQuery = "";
if ($num_rows == 1) {
    //What do I put here to return a string from data?
}

mysql_query($updateQuery);

?>

最佳答案

我能想到的最简单的方法是只输出“数据”字段的内容后跟一个换行符(当然假设 data 不包含换行符),这样 BufferedReader 的 readLine()可以使用方法。

php 端:

if ($num_rows == 1) {
    $row = mysql_fetch_assoc($result);
    printf("%s\n",$row['data']);
}

Java 端:

BufferedReader in = new BufferedReader(new InputStreamReader(
                                con.getInputStream()));
String message = in.readLine();
in.close();

当然需要一些额外的错误检查,但这是本质。您还可以将 data 的内容序列化为 JSON 或 XML 格式,并在 Java 端对其进行反序列化,但对于看起来很简单的用例来说,这很可能有点矫枉过正。

关于java - 你如何从一个用Java调用的php文件中获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17711227/

相关文章:

php - HTML 文本区域换行符

java - 为什么 HttpURLConnection 在 401 响应后重试连接时不重新发送 PUT 内容?

java - Stream.findAny 是短路操作吗?

java - 为按钮添加事件

Java 门户组件设置

java - 在java中观察/捕获302重定向

multithreading - 如何在Grails中的线程中中断HttpUrlConnection?

java - android全屏 Activity 并隐藏键栏

php - 如何获取 PHP 中的字符数?

php - 用数据库值填充下拉列表