public static String openUrl(Context context, String url, String method,            WeiboParameters params, String file, Token token) throws WeiboException {        String result = "";        try {            HttpClient client = getNewHttpClient(context);            HttpUriRequest request = null;            ByteArrayOutputStream bos = null;            if (method.equals("GET")) {                url = url + "?" + encodeUrl(params);                HttpGet get = new HttpGet(url);                request = get;            } else if (method.equals("POST")) {                HttpPost post = new HttpPost(url);                byte[] data = null;                bos = new ByteArrayOutputStream(1024 * 50);                if (!TextUtils.isEmpty(file)) {                    Utility.paramToUpload(bos, params);                    post.setHeader("Content-Type", MULTIPART_FORM_DATA + "; boundary=" + BOUNDARY);                    Bitmap bf = BitmapFactory.decodeFile(file);                    Utility.imageContentToUpload(bos, bf);                } else {                    post.setHeader("Content-Type", "application/x-www-form-urlencoded");                    String postParam = encodeParameters(params);                    data = postParam.getBytes("UTF-8");                    bos.write(data);                }                data = bos.toByteArray();                bos.close();                // UrlEncodedFormEntity entity = getPostParamters(params);                ByteArrayEntity formEntity = new ByteArrayEntity(data);                post.setEntity(formEntity);                request = post;            } else if (method.equals("DELETE")) {                request = new HttpDelete(url);            }            setHeader(method, request, params, url, token);            HttpResponse response = client.execute(request);            StatusLine status = response.getStatusLine();            int statusCode = status.getStatusCode();            if (statusCode != 200) {                result = read(response);                String err = null;                int errCode = 0;try {JSONObject json = new JSONObject(result);err = json.getString("error");errCode = json.getInt("error_code");} catch (JSONException e) {e.printStackTrace();}throw new WeiboException(String.format(err), errCode);            }            // parse content stream from response            result = read(response);            return result;        } catch (IOException e) {            throw new WeiboException(e);        }    }    public static HttpClient getNewHttpClient(Context context) {        try {            KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());            trustStore.load(null, null);            SSLSocketFactory sf = new MySSLSocketFactory(trustStore);            sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);            HttpParams params = new BasicHttpParams();            HttpConnectionParams.setConnectionTimeout(params, 10000);            HttpConnectionParams.setSoTimeout(params, 10000);            HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);            HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);            SchemeRegistry registry = new SchemeRegistry();            registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));            registry.register(new Scheme("https", sf, 443));            ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);            // Set the default socket timeout (SO_TIMEOUT) // in            // milliseconds which is the timeout for waiting for data.            HttpConnectionParams.setConnectionTimeout(params, Utility.SET_CONNECTION_TIMEOUT);            HttpConnectionParams.setSoTimeout(params, Utility.SET_SOCKET_TIMEOUT);            HttpClient client = new DefaultHttpClient(ccm, params);            WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);            if (!wifiManager.isWifiEnabled()) {                // 获取当前正在使用的APN接入点                Uri uri = Uri.parse("content://telephony/carriers/preferapn");                Cursor mCursor = context.getContentResolver().query(uri, null, null, null, null);                if (mCursor != null && mCursor.moveToFirst()) {                    // 游标移至第一条记录,当然也只有一条                    String proxyStr = mCursor.getString(mCursor.getColumnIndex("proxy"));                    if (proxyStr != null && proxyStr.trim().length() > 0) {                        HttpHost proxy = new HttpHost(proxyStr, 80);                        client.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);                    }                    mCursor.close();                }            }            return client;        } catch (Exception e) {            return new DefaultHttpClient();        }    }






更多相关文章

  1. android sqlist中游标下标越界问题解决方案
  2. Tab游标,实现fragment滑动,,游标改变
  3. 有没有办法在PDO中设置默认游标类型(特别是PDO_SQLSRV)?
  4. 手把手教你mysql(十五)游标变量流程控制
  5. 通过不在android游标中工作的顺序

随机推荐

  1. Android手势监听类GestureDetector
  2. 在Android(安卓)Studio更改现有项目里的S
  3. Android(安卓)2.2 开发环境配置详解
  4. Android(安卓)设定横屏,禁止屏幕旋转,Activ
  5. 【 Android(安卓)】Android(安卓)Runtime
  6. Android(安卓)EditText 禁止软键盘弹出
  7. Android使用FFmpeg(六)--ffmpeg实现音视
  8. Android界面设计学习
  9. android image 压缩和解压 unyaffs与mkya
  10. Android学习笔记4之容器