我有一个url site.com/test.php,其中包含以下代码
<?php
$num1 = $_REQUEST['num1'] ;
$num2 = $_REQUEST['num2'] ;
$tot = $num1 + $num2 ;
?>
使用POST / GET的android应用程序将num1和num2参数传递给www.site.com/test.php
如何以Android应用程序能够从此请求获得响应的方式进行响应。
我试过这个
header('Content-Type: application/json');
echo json_encode($response);
但它所做的就是在网页视图中回显它并且我无法得到响应。我在那里我可以得到响应作为标准的json响应,但是没有显示但只要我点击网址就得到它作为回应?
**更新**
@Override
public boolean shouldOverrideUrlLoading (WebView view, String url) {
if(flag) {
URL aURL = new URL(url);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
// read inputstream to get the json..
...
...
return true;
}
return false
}
@override
public void onPageFinished (WebView view, String url) {
if (url contains "form.html") {
flag = true;
}
}
这是我从SO获得的java代码,我打算在android appication中使用
答案 0 :(得分:0)
似乎是处理响应的问题,而不是JSON的生成。您是否在其中包含“form.html”的页面上单击了JSON的链接?因为这就是您发布的代码中假设的内容。
最好只重载shouldOverrideUrlLoading
并检查url是否与json页面匹配。像这样:
@Override
public boolean shouldOverrideUrlLoading (WebView view, String url) {
if(url.toLowerCase().contains("www.site.com/test.php")) {
URL aURL = new URL(url);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
// read inputstream to get the json..
...
...
return true;
}
return false;
}
启动一个活动并在该活动中加载JSON可能是一个好主意,例如,使用AsyncTask(最新的Android API中的UI线程不允许网络操作),而不是立即执行URL.openConnection。