zoukankan      html  css  js  c++  java
  • 为volley的http请求添加自定义request header

    添加Request header 代码如下

    import com.android.volley.AuthFailureError;
    import com.android.volley.Response;
    import com.android.volley.toolbox.StringRequest;
    
    import java.util.LinkedHashMap;
    import java.util.Map;
    
    /**
     * 在Volley http请求中添加请求头
     * Created by dxb on 2017/6/1.
     */
    public class StringRequestWithAuth extends StringRequest {
    
        public StringRequestWithAuth(int method, String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
            super(method, url, listener, errorListener);
        }
    
        public StringRequestWithAuth(String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
            super(url, listener, errorListener);
        }
    
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> headers = new LinkedHashMap<>();
            // 自定义请求头 user-token:AEUHY98QIASUDH
            headers.put("user-token", "AEUHY98QIASUDH");
            return headers;
        }
    }

    如果发送的请求是JsonObjectRequest,那么此类继承自JsonObjectRequest。

    测试代码:

    1.服务端:

    @RestController
    public class TestRestController {
    
        private Logger logger = LoggerFactory.getLogger(this.getClass());
    
        @GetMapping("3")
        public String retIp(HttpServletRequest request, @RequestHeader("user-token") String token) {
            String remoteAddr = request.getRemoteAddr();
            logger.info("request.getRemoteAddr() = {}, token={}", remoteAddr, token);
            return remoteAddr + ":" + token;
        }
    
    }

    2.客户端:

    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.widget.TextView;
    
    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.Volley;
    
    import cn.dxbtech.dictationer.temp.StringRequestWithAuth;
    
    public class MainActivity extends AppCompatActivity {
        private static final String TAG = "MainActivity";
        private TextView testTv;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            testTv = (TextView) findViewById(R.id.testTv);
        }
    
        @Override
        protected void onStart() {
            super.onStart();
    
            RequestQueue queue = Volley.newRequestQueue(this);
            // 请求url
            String url = "http://192.168.1.165:8099/3";
    
            // 实例化请求
            StringRequestWithAuth jsonObjectRequest = new StringRequestWithAuth(Request.Method.GET, url, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.i(TAG, "onResponse: response=" + response);
                    testTv.setText("Response is: " + response);
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.e(TAG, "onErrorResponse: error=" + error.getMessage(), error);
                }
            });
            queue.add(jsonObjectRequest);
        }
    }

    运行结果

    1.服务端:

    2017-06-01 11:12:39.334  INFO 15400 --- [nio-8099-exec-1] cn.dxbtech.web.TestRestController        : request.getRemoteAddr() = 192.168.1.165, token=AEUHY98QIASUDH

    2.客户端:

    06-01 03:12:38.624 4021-4021/cn.dxbtech.dictationer I/MainActivity: onResponse: response=192.168.1.165:AEUHY98QIASUDH
  • 相关阅读:
    Log4net源码分析(一)
    ASP.NET MVC 框架是 .NET 平台 Web 开发的主流,但是并不适合初学者
    详解ASP.NET MVC应用程序请求生命周期
    ELMAH (ASP.NET错误日志处理)使用方法
    ElMAH(ASP.NET错误日志记录与通知)系列文章基础应用篇
    Log4net源码分析(三)
    Log4net 框架系列:log4net日志文件在asp.net中的应用实例记录系统错误
    ELMAH(ASP.NET错误日志记录与通知)系列文章概念篇
    Log4net源码分析(二)
    在VS2010中配制Elmah邮件发送到Gmail
  • 原文地址:https://www.cnblogs.com/parasis/p/6927932.html
Copyright © 2011-2022 走看看