您的位置:首页 > 理论基础 > 计算机网络

android HttpClient访问网络获取数据

2014-12-03 23:01 337 查看
使用Apache提供的HttpClient接口同样可以进行HTTP操作。

private
static
String request(String url, HttpMethod method,List<BasicNameValuePair> params)
throws
IOException {
[align=left]
[/align]
              String json =
null;
              BufferedReader reader =
null;
[align=left]
[/align]
              HttpClient client =
null;
              
try
{
                     client =
new
DefaultHttpClient();
[align=left]                     HttpParams httpParams = client.getParams();[/align]
                     httpParams.setParameter(CoreProtocolPNames.
USE_EXPECT_CONTINUE, false);
[align=left]
[/align]
                     HttpUriRequest request =
getRequest(url, params, method);
[align=left]
[/align]
                     Log.
d(TAG, "Sending:"
+ request.getURI() +
" params:"+ params.toString());
[align=left]
[/align]
[align=left]                     HttpResponse response = client.execute(request);[/align]
                     
if
(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
                           reader =
new
BufferedReader(new
InputStreamReader(response
[align=left]                                         .getEntity().getContent()));[/align]
                           StringBuilder sb =
new
StringBuilder();
                           
for
(String s = reader.readLine(); s !=
null; s = reader
[align=left]                                         .readLine()) {[/align]
[align=left]                                  sb.append(s);[/align]
[align=left]                           }[/align]
[align=left]                           json = sb.toString();[/align]
[align=left]
[/align]
                           Log.
d(TAG,
json);
                     }
else
{
[align=left]
[/align]
                           Log.
e(TAG,
"Network response error:"+ response.getStatusLine().toString());
                           
return
null
;
[align=left]
[/align]
[align=left]                     }[/align]
              }
catch
(ClientProtocolException e) {
                     Log.
e(TAG,
e.getMessage(), e);
                     
return
null
;
              }
catch
(IOException e) {
                     Log.
e(TAG,
e.getMessage(), e);
                     
throw
e;
              }
finally
{
                     
try
{
                           
if
(reader !=
null) {
[align=left]                                  reader.close();[/align]
[align=left]                           }[/align]
[align=left]
[/align]
                           
if
(client !=
null) {
[align=left]
[/align]
[align=left]                                  client.getConnectionManager().shutdown();[/align]
[align=left]                           }[/align]
[align=left]
[/align]
                     }
catch
(IOException e) {
                           
// ignore me
                           
throw
e;
[align=left]                     }[/align]
[align=left]              }[/align]
              
return
json;
[align=left]
[/align]
[align=left]       }[/align]
[align=left]
[/align]
       
private
static
HttpUriRequest getRequest(String url,
[align=left]                     List<BasicNameValuePair> params, HttpMethod method) {[/align]
              
if
(method.equals(HttpMethod.POST))
{
[align=left]
[/align]
                     
try
{
                           UrlEncodedFormEntity entity =
new
UrlEncodedFormEntity(params,
                                         
"UTF-8");
                           HttpPost request =
new
HttpPost(url);
[align=left]                           request.setEntity(entity);[/align]
                           
return
request;
                     }
catch
(UnsupportedEncodingException e) {
                           
// Should not come here, ignore me.
                           
throw
new
java.lang.RuntimeException(e.getMessage(), e);
[align=left]                     }[/align]
              }
else
{
[align=left]
[/align]
                     
// 对参数编码
                     String param = URLEncodedUtils.
format(params,
"UTF-8");
[align=left]
[/align]
                     HttpGet request =
new
HttpGet(url +
"?"
+ param);
                     
return
request;
[align=left]              }[/align]
[align=left]       }[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐