如何在Android上的HttpURLConnection中发送HTTP SEARCH请求?

时间:2014-11-26 04:04:40

标签: android search httprequest httpurlconnection

我想知道是否可以通过java.net.HttpURLConnection将SEARCH请求(实际上)发送到基于HTTP的URL。

我已经阅读了很多描述如何发送GET,POST,DELETE请求的文章,但我仍然没有找到任何成功执行SEARCH请求的示例代码。

这是示例代码。

public static String HTTPSearch(String urlAddress, String... searchDataPair) {
    HttpParams myParams = new BasicHttpParams();

    HttpConnectionParams.setConnectionTimeout(myParams, 10000);
    HttpConnectionParams.setSoTimeout(myParams, 30000);

    DefaultHttpClient hc = new DefaultHttpClient(myParams);
    ResponseHandler<String> res = new BasicResponseHandler();

    HttpSearch searchMethod = new HttpSearch (urlAddress);

    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
            putDataPair.length / 2);

    for (int i = 0; i < putDataPair.length; i += 2) {
        nameValuePairs.add(new BasicNameValuePair(searchDataPair[i],
                searchDataPair[i + 1]));
    }

    String response = "";
    try {
        searchMethod .setEntity(new UrlEncodedFormEntity(nameValuePairs));
        response = hc.execute(searchMethod , res);
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return response;
}

在这段代码中,HttpSearch是错误的。 请帮我解决一下HttpSearch。

2 个答案:

答案 0 :(得分:0)

首先,我不知道我的方法是否最好。

我正在使用restful codeigniter webservice。我通过使用search来实现POST所做的工作。我只是发布了搜索关键字,然后我的webservice会执行SQL Query来搜索我的数据库中的String(关键字)。

答案 1 :(得分:0)

根据docs,setRequestMethod()不允许使用SEARCH方法(这是有道理的,因为我可以告诉SEARCH是MS only。但是,你可以随时尝试使用setRequestMethod(),看看会发生什么。