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

使用Volley实现Https请求, Volley SSL 双向自认证证书请求。

2015-12-29 03:17 1206 查看
代码参照:
https://github.com/yuxiaohui78/volleyHttps


How
to use it.


1.
In AndroidManifest.xml add the VolleyHelperApplication

<application
android:name="xiaohui.volley.VolleyHelperApplication"
...
</application>


In build.gradle

dependencies {
 compile 'com.mcxiaoke.volley:library:1.0.19'
 }



2.
Example:


StringRequest
- HTTP/GET

private void stringRequestGetHttpExample(){

        VolleyDataRequester.withHttp( this )
                .setUrl( HTTP_HOST + IP)
                .setMethod( VolleyDataRequester.Method.GET )
                .setStringResponseListener( new VolleyDataRequester.StringResponseListener() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText( MainActivity.this, "HTTP/POST,StringRequest successfully.", Toast.LENGTH_SHORT ).show();
                        tvResult.setText( response );
                    }
                } )
                .requestString();
    }



StringRequst
HTTP/POST

private void stringRequestPostHttpExample(){

        HashMap<String, String> body = new HashMap <String, String>() ;
        body.put( "name", "xiaohui" );
        body.put( "gender", "male" );

        VolleyDataRequester.withHttp( this )
                .setUrl( HTTP_HOST +  POST)
                .setBody( body )
                .setMethod( VolleyDataRequester.Method.POST )
                .setStringResponseListener( new VolleyDataRequester.StringResponseListener() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText( MainActivity.this, "HTTP/POST,StringRequest successfully.", Toast.LENGTH_SHORT ).show();
                        tvResult.setText( response );
                    }
                } )
                .requestString();
    }



JsonRequest
HTTPS/GET

private void jsonRequestGetHttpsExample(){
        VolleyDataRequester.withDefaultHttps( this )
                .setUrl(HTTPS_HOST + IP)
                .setJsonResponseListener( new VolleyDataRequester.JsonResponseListener() {
                    @Override
                    public void onResponse(JSONObject response) {

                        try {
                            String s = response.getString( "origin" );
                            tvResult.setText( s );
                            Toast.makeText( MainActivity.this, "HTTPS/GET, JsonRequest successfully.", Toast.LENGTH_SHORT ).show();
                        }catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                } )
                .setResponseErrorListener( new VolleyDataRequester.ResponseErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        tvResult.setText( error.getMessage() );
                    }
                } )
                .requestJson();
    }



JsonRequest
HTTP/POST

private void jsonRequestPostHttpsExample(){
        JSONObject json = new JSONObject(  );
        try{
            json.put( "name", "xiaohui" );
            json.put( "gender", "male" );
        }catch (Exception e){
            e.printStackTrace();
        }

        VolleyDataRequester.withDefaultHttps( this )
                .setUrl(HTTPS_HOST + POST)
                .setBody( json )
                .setJsonResponseListener( new VolleyDataRequester.JsonResponseListener() {
                    @Override
                    public void onResponse(JSONObject response) {

                        try {
                            String data = response.getString( "data" );
                            tvResult.setText( data);

                            Toast.makeText( MainActivity.this, "HTTPS/POST, JsonRequest successfully.", Toast.LENGTH_SHORT ).show();
                        }catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                } )
                .setResponseErrorListener( new VolleyDataRequester.ResponseErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        tvResult.setText( error.getMessage() );
                    }
                } )
                .requestJson();
    }



JsonArrayRequest
HTTP/GET

private void jsonArrayRequestGetHttpsExample(){
        VolleyDataRequester.withDefaultHttps( this )
                .setUrl(HTTPS_JSONARRAY)
                .setJsonArrayResponseListener( new VolleyDataRequester.JsonArrayResponseListener() {
                    @Override
                    public void onResponse(JSONArray response) {
                        String output = "Array length=" + response.length();

                        for (int i = 0; i < response.length(); i++){
                            try {
                                JSONObject json = (JSONObject) response.get( i );
                                String name = json.getString( "name" );
                                output += "\n" + i + " - " + name;
                            }catch (Exception e){
                                e.printStackTrace();
                            }
                        }

                        tvResult.setText( output );
                    }
                } )
                .setResponseErrorListener( new VolleyDataRequester.ResponseErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        tvResult.setText( error.getMessage() );
                    }
                } )
                .requestJsonArray();
    }



3.
Using Self Certified SSL

Replace the certificates client.key.p12 and client.truststore with our own certificates in folder assets
Configure the CertificateConfig.java
Then use the following method to send the request.

VolleyDataRequester.withSelfCertifiedHttps( this )
                .setUrl( You_url)
                .setJsonResponseListener( new YouJsonRequestListener ())
                .requestJson();



Screeshot:





References:

http://developer.android.com/training/volley/index.html

https://github.com/yuxiaohui78/android-volley

http://code.tutsplus.com/tutorials/an-introduction-to-volley--cms-23800

http://arnab.ch/blog/2013/08/asynchronous-http-requests-in-android-using-volley/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: