将数据发送到网站-Android

3

有一个网站上有几个下拉框,我已经制作了一个安卓应用程序来获取该网站的值。现在该网站有一个搜索框,在该网站中,我们可以从框中选择选项并按提交按钮,然后它将根据所选选项提供结果。我需要在我的应用程序中做同样的事情。

需要帮助,谢谢。


你尝试过什么来做这件事? - Ajay S
2
@TGMCians 我通过页面源代码看到了当我们点击网站时页面重定向到的链接。现在我尝试使用网站中使用的筛选器链接,但是它给出了“链接未找到(预期)”的错误。现在我想要做一个类似于网页中的旋转表单结构,但是为此我们需要数据库元素(就像我们在从JSP传递数据到Servlet时所做的那样)。但我仍然需要具体的想法来继续进行。 - SeasonalShot
1个回答

4
要向网站发布数据,您需要向其发送HTTP POST请求。您可以将要发送的数据放入数组中并将其发送到php脚本。
您必须确定使用哪个ID将字符串发送到服务器。在我的示例中,它是your_1和your_2。这与每个网站不同。所有新浏览器都可以在开发者控制台或其他位置读取此信息。
public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");

try {
    // Add your data
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair("your_1", "data 1"));
    nameValuePairs.add(new BasicNameValuePair("your_2", "data 2"));
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    // Execute HTTP Post Request
    HttpResponse response = httpclient.execute(httppost);

} catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
} catch (IOException e) {
    // TODO Auto-generated catch block
}

发送请求后,您需要使用StringBuilder读取响应内容。

private StringBuilder inputStreamToString(InputStream is) {
String line = "";
StringBuilder total = new StringBuilder();

// Wrap a BufferedReader around the InputStream
BufferedReader rd = new BufferedReader(new InputStreamReader(is));

// Read response until the end
while ((line = rd.readLine()) != null) { 
    total.append(line); 
}

// Return full string
return total;
}

现在您已经获得了响应,可以使用正则表达式来强调您的特殊文本。这有点棘手,但是这里可以帮助你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接