2014-02-22 34 views
1

我有具有使用POST以下代碼創建可以從一個機器人應用

<?php 

$num1 = $_REQUEST['num1'] ; 
$num2 = $_REQUEST['num2'] ; 

$tot = $num1 + $num2 ; 

?> 

從一個機器人應用的URL site.com/test.php的網頁視圖訪問的簡單的JSON響應/ GET NUM1和num2參數傳遞到www.site.com/test.php

我如何以這樣的方式做出響應,android應用程序將能夠從這個請求得到響應。

我想這

header('Content-Type: application/json'); 
echo json_encode($response); 

,但它所做的就是呼應它在Web視圖和IM無法得到response.Is有什麼方法我能得到的迴應作爲標準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; 
    } 
} 

這是Java代碼中,我從SO得到的,在android器件的應用

+0

向我們展示您提出請求的'JAVA'代碼。 – Ohgodwhy

+0

其實我沒有做android部分。它是由我的朋友在另一側完成的.IF我可以正確設置這個API,他應該可以訪問它 – Piya

+0

然後問題在他的末端。在創建JSON端點時,您只需要回顯JSON字符串。因爲JSON是語言不可知的,所以它看起來像是「{」這個「:」是在你的瀏覽器中的一個JSON字符串「}」。如果是這樣,那麼它是正確的。 – Ohgodwhy

回答

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(網絡操作是不允許在最新的UI線程android API),而不是立即做URL.openConnection。

相關問題