0

我正在开发一个 android 应用程序,我需要访问在 asp.net 中作为网页完成的服务器端

以下是网页网址:

theWebPageURL?action=methodName&email=theEmail

我不知道我应该使用什么方法来访问此 URL 并将电子邮件参数发送给它并获得响应。

我搜索了很多,没有一个工作

谁能帮帮我?

4

2 回答 2

1

你需要使用http get请求 HttpGet

并将这一行添加到您的清单文件中

<uses-permission android:name="android.permission.INTERNET" />

另外,请检查此链接

于 2012-08-26T13:09:40.753 回答
1

我建议查看这两个类似的问题:

使用 android 发出 HTTP 请求

如何在 Android 中向 HTTP GET 请求添加参数?


更新

下面的代码是我根据上面两个链接中的答案汇总的工作示例;如果这对您有帮助,请务必感谢他们。

为了演示,这个示例中的 uri 被构建到http://www.google.com/search?q=android中。

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Construct the URI
        String uri = "http://www.google.com/search?";       
        List<NameValuePair> params = new LinkedList<NameValuePair>();       
        params.add(new BasicNameValuePair("q", "android"));             
        uri += URLEncodedUtils.format(params, "utf-8");

        // Run the HTTP request asynchronously
        new RequestTask().execute(uri);    
    }

    class RequestTask extends AsyncTask<String, String, String>{

        @Override
        protected String doInBackground(String... uri) {
            HttpClient httpclient = new DefaultHttpClient();
            HttpResponse response;
            String responseString = null;
            try {
                response = httpclient.execute(new HttpGet(uri[0]));
                StatusLine statusLine = response.getStatusLine();
                if(statusLine.getStatusCode() == HttpStatus.SC_OK){
                    ByteArrayOutputStream out = new ByteArrayOutputStream();
                    response.getEntity().writeTo(out);
                    out.close();
                    responseString = out.toString();
                } else{
                    //Closes the connection.
                    response.getEntity().getContent().close();
                    throw new IOException(statusLine.getReasonPhrase());
                }
            } catch (ClientProtocolException e) {
                //TODO Handle problems..
            } catch (IOException e) {
                //TODO Handle problems..
            }
            return responseString;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);                
            // result contains the response string.    
        }
    }
}

而且,当然,不要忘记将其添加到您的清单中:

<uses-permission android:name="android.permission.INTERNET" />
于 2012-08-26T13:18:36.900 回答