HTTP头中增加自定义的属性然后post请求第三方的页面

场景是这样的,第三方页面访问需要鉴权,所以需要在HTTP头中增加鉴权的属性和内容发送给第三方网页。

我试过用response.addHeader("Authorization","xxxxxxxxx")方法,但发送的请求还是不带Authorization属性,还请大牛们不吝指教。


你这个问题实际上是服务器访问第三方鉴权系统,这个访问过程和客户端没关系的

和response,request都没关系

是要在服务器端模拟http请求,在这个请求里面增加自定义header
用HttpClient很容易
 

HttpClient httpClient=new HttpClient(new HttpClientParams(),new SimpleHttpConnectionManager(true));
List<Header> headers;
headers=new ArrayList<Header>();
headers.add(new Header("someitem","someContent"));
List<Header> headers = new ArrayList<Header>();  
headers.add(new Header("Authorization", "OAuth2 " + "2.00Tw_PoBdBYEND600e0aa317Sm_qoC"));  
headers.add(new Header("API-RemoteIP", "http://10.1.41.252"));  
client.getHostConfiguration().getParams().setParameter("http.default-headers", headers); 
client.executeMethod(method);  


这个第三方系统验证完你的header无误之后,肯定会在返回的session里有些标志

把这些标志再给你的客户端,这样你的客户端就可以访问这个第三方了

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这是一个集成目前Android主流优秀第三方组件、优秀好用的自定义控件、实用工具类封装、以及一些APP共通模块(比如:版本更新、意见反馈、引导界面等等)的开发包,帮助程序员快速开发自己的APP   已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK 短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库RoboGuice WebService调用库ksoap2 XML解析XStream 动画开源库nineoldandroids 表单验证库android-validation-komensky 更多优秀开源库等待集成... 已封装工具类: HTTP网络通信工具类(ToolHTTP.java),get/post请求,支持多种接口回调 SOAP协议通信工具类(ToolSOAP.java),基于异步回调请求WebService接口 Sqlite数据库操作工具类(ToolDatabase.java),获取DAO、创建表、删除表等API 提示信息对话框工具类(ToolAlert.java),已集成泡泡、土司、对话框三种提示 文件操作工具类(ToolFile.java),assets/raw/xml/shrePerface/等文件读写API 地图定位工具类(ToolLocation.java),读取GPS状态、请求定位、获取经纬度等方法 社会化分享工具类(ToolShareSDK.java),各大开发平台分享API操作 短信验证码工具类(ToolMSM.java),移动/联通/电信三网发送手机短信验证码、异步回调验证结果 字符串操作工具类(ToolString.java),生成UUID、非空非NULL逻辑判断、生成MD5等常用共通方法 数据操作工具类(ToolData.java),自动递归获取表单数据封装成Map、本地数据分页共通方法等 图片操作工具类(ToolPicture.java),生成二维码、验证码、灰度、合成、圆角、水印等操作 读取本地资源工具类(ToolResource.java),反射本地资源文件API,避免依赖R文件,方便jar形式发布 Android单位转换工具类(ToolUnit.java),sp/dp/px互转 自定义Toast工具类(ToolToast.java),自定义背景色、字体颜色、大小、边框等 Properties操作工具类(ToolProperties.java),读写Properties文件操作 网络操作工具类(ToolNetwork.java),获取网络信息、更改切换网络等相关操作 日期操作工具类(ToolDateTime.java),获取日期、日期加减、格式化日期、日期转换等操作 XML操作工具类(ToolXml.java),基于DOM/XMLPullPaser模式解析、生成XML操作 XMPP操作工具类(ToolXMPP.java),基于XMPP协议的相关API操作 适配字体工具类(ToolAutoFit.java),代码根据设备密度自动缩放View的字体大小 LOG相关工具类(ToolLog.java) 功能待续-->切入记录异常日志,并存储文件或上传至服务器 已封装/收集自定义控件: 兼容低版本的SwitchButton 追加自定义属性Value的CheckBox/RadioButton/RadioGroup/SingleSpinner 圆角提示信息TipsView 圆角图片RoundImageView 自定义样式风格ProgressDialog 自定义样式WebView 圆形进度条(RoundProgressBar)、垂直进度条(VerticalProgressBar) 开源优秀自定义控件:imageindicator(图片轮播/引导界面)、pulltorefresh、XListView、TableFixHeaders(水平 垂直滚动 首行 首列冻结表格)、ViewPager 项目源码的git主页:http://git.oschina.net/zftlive/zftlive javaapk.com之前也介绍过这类的项目源码,可以点击javaapk.com首页的开发框架分类下载。
这是一个集成目前Android主流优秀第三方组件、优秀好用的自定义控件、实用工具类封装、以及一些APP共通模块(比如:版本更新、意见反馈、引导界面等等)的开发包,帮助程序员快速开发自己的APP 已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK+短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库RoboGuice WebService调用库ksoap2 XML解析XStream 动画开源库nineoldandroids 表单验证库android-validation-komensky 更多优秀开源库等待集成... 已封装工具类: HTTP网络通信工具类(ToolHTTP.java),get/post请求,支持多种接口回调 SOAP协议通信工具类(ToolSOAP.java),基于异步回调请求WebService接口 Sqlite数据库操作工具类(ToolDatabase.java),获取DAO、创建表、删除表等API 提示信息对话框工具类(ToolAlert.java),已集成泡泡、土司、对话框三种提示 文件操作工具类(ToolFile.java),assets/raw/xml/shrePerface/等文件读写API 地图定位工具类(ToolLocation.java),读取GPS状态、请求定位、获取经纬度等方法 社会化分享工具类(ToolShareSDK.java),各大开发平台分享API操作 短信验证码工具类(ToolMSM.java),移动/联通/电信三网发送手机短信验证码、异步回调验证结果 字符串操作工具类(ToolString.java),生成UUID、非空非NULL逻辑判断、生成MD5等常用共通方法 数据操作工具类(ToolData.java),自动递归获取表单数据封装成Map、本地数据分页共通方法等 图片操作工具类(ToolPicture.java),生成二维码、验证码、灰度、合成、圆角、水印等操作 读取本地资源工具类(ToolResource.java),反射本地资源文件API,避免依赖R文件,方便jar形式发布 Android单位转换工具类(ToolUnit.java),sp/dp/px互转 自定义Toast工具类(ToolToast.java),自定义背景色、字体颜色、大小、边框等 Properties操作工具类(ToolProperties.java),读写Properties文件操作 网络操作工具类(ToolNetwork.java),获取网络信息、更改切换网络等相关操作 日期操作工具类(ToolDateTime.java),获取日期、日期加减、格式化日期、日期转换等操作 XML操作工具类(ToolXml.java),基于DOM/XMLPullPaser模式解析、生成XML操作 XMPP操作工具类(ToolXMPP.java),基于XMPP协议的相关API操作 适配字体工具类(ToolAutoFit.java),代码根据设备密度自动缩放View的字体大小 LOG相关工具类(ToolLog.java) 功能待续-->切入记录异常日志,并存储文件或上传至服务器 已封装/收集自定义控件: 兼容低版本的SwitchButton 追加自定义属性Value的CheckBox/RadioButton/RadioGroup/SingleSpinner 圆角提示信息TipsView 圆角图片RoundImageView 自定义样式风格ProgressDialog 自定义样式WebView 圆形进度条(RoundProgressBar)、垂直进度条(VerticalProgressBar) 开源优秀自定义控件:imageindicator(图片轮播/引导界面)、pulltorefresh、XListView、TableFixHeaders(水平+垂直滚动+首行+首列冻结表格)、ViewPager
这是一个集成目前Android主流优秀第三方组件、优秀好用的自定义控件、实用工具类封装、以及一些APP共通模块(比如:版本更新、意见反馈、引导界面等等)的开发包,帮助程序员快速开发自己的APP 已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK 短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库RoboGuice WebService调用库ksoap2 XML解析XStream 动画开源库nineoldandroids 表单验证库android-validation-komensky 更多优秀开源库等待集成... 已封装工具类: HTTP网络通信工具类(ToolHTTP.java),get/post请求,支持多种接口回调 SOAP协议通信工具类(ToolSOAP.java),基于异步回调请求WebService接口 Sqlite数据库操作工具类(ToolDatabase.java),获取DAO、创建表、删除表等API 提示信息对话框工具类(ToolAlert.java),已集成泡泡、土司、对话框三种提示 文件操作工具类(ToolFile.java),assets/raw/xml/shrePerface/等文件读写API 地图定位工具类(ToolLocation.java),读取GPS状态、请求定位、获取经纬度等方法 社会化分享工具类(ToolShareSDK.java),各大开发平台分享API操作 短信验证码工具类(ToolMSM.java),移动/联通/电信三网发送手机短信验证码、异步回调验证结果 字符串操作工具类(ToolString.java),生成UUID、非空非NULL逻辑判断、生成MD5等常用共通方法 数据操作工具类(ToolData.java),自动递归获取表单数据封装成Map、本地数据分页共通方法等 图片操作工具类(ToolPicture.java),生成二维码、验证码、灰度、合成、圆角、水印等操作 读取本地资源工具类(ToolResource.java),反射本地资源文件API,避免依赖R文件,方便jar形式发布 Android单位转换工具类(ToolUnit.java),sp/dp/px互转 自定义Toast工具类(ToolToast.java),自定义背景色、字体颜色、大小、边框等 Properties操作工具类(ToolProperties.java),读写Properties文件操作 网络操作工具类(ToolNetwork.java),获取网络信息、更改切换网络等相关操作 日期操作工具类(ToolDateTime.java),获取日期、日期加减、格式化日期、日期转换等操作 XML操作工具类(ToolXml.java),基于DOM/XMLPullPaser模式解析、生成XML操作 XMPP操作工具类(ToolXMPP.java),基于XMPP协议的相关API操作 适配字体工具类(ToolAutoFit.java),代码根据设备密度自动缩放View的字体大小 LOG相关工具类(ToolLog.java) 功能待续-->切入记录异常日志,并存储文件或上传至服务器 已封装/收集自定义控件: 兼容低版本的SwitchButton 追加自定义属性Value的CheckBox/RadioButton/RadioGroup/SingleSpinner 圆角提示信息TipsView 圆角图片RoundImageView 自定义样式风格ProgressDialog 自定义样式WebView 圆形进度条(RoundProgressBar)、垂直进度条(VerticalProgressBar) 开源优秀自定义控件:imageindicator(图片轮播/引导界面)、pulltorefresh、XListView、TableFixHeaders(水平 垂直滚动 首行 首列冻结表格)、ViewPager
### 回答1: 安卓进行 post 请求,发送自定义 cookie 的方法如下: 1. 首先,在 Android 中使用 HTTP 请求,推荐使用第三方库例如 OkHttp 或者 Volley。 2. 使用 OkHttp,你可以使用如下代码创建带有自定义 cookie 的请求: ``` OkHttpClient client = new OkHttpClient(); String cookie = "key=value"; Request request = new Request.Builder() .url(url) .post(requestBody) .addHeader("Cookie", cookie) .build(); Response response = client.newCall(request).execute(); ``` 3. 使用 Volley,你可以使用如下代码创建带有自定义 cookie 的请求: ``` RequestQueue queue = Volley.newRequestQueue(context); StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String response) { // 处理响应 } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // 处理错误 } }) { @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> headers = new HashMap<>(); String cookie = "key=value"; headers.put("Cookie", cookie); return headers; } @Override protected Map<String, String> getParams() throws AuthFailureError { // 设置请求参数 Map<String, String> params = new HashMap<>(); // ... return params; } }; queue.add(stringRequest); ``` 注意,上面的代码假设 cookie 的格式是 "key=value",如果你有多个 cookie,需要将它们拼接在一起,例如 "key1=value1; key2=value2"。 ### 回答2: 在安卓设备上进行POST请求并发送自定义的Cookie,可以通过使用Java代码和HttpClient库来实现。 首先,需要在AndroidManifest.xml文件中添加网络权限: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 然后,在项目的build.gradle文件中添加HttpClient库的依赖: ```groovy dependencies { implementation 'org.apache.httpcomponents:httpclient:4.5.13' } ``` 接下来,在代码中进行POST请求的逻辑。可以创建一个名为"HttpPostRequest"的类,并在该类中编写发送POST请求的方法: ```java import org.apache.http.HttpResponse; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.impl.client.DefaultHttpClient; import java.util.ArrayList; import java.util.List; public class HttpPostRequest { private static final String URL = "YOUR_POST_URL"; public static String sendPostRequestWithCookie(String postData, String cookieValue) { HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(URL); try { // 设置自定义Cookie httpPost.addHeader("Cookie", "your-cookie-name=" + cookieValue); // 设置POST请求参数 List<NameValuePair> params = new ArrayList<>(); params.add(new BasicNameValuePair("data", postData)); httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); // 发送POST请求 HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); // 获取响应结果 String response = EntityUtils.toString(httpEntity); return response; } catch (Exception e) { e.printStackTrace(); } return null; } } ``` 以上代码示例中,URL为你要发送POST请求的地址,在addHeader方法中使用自定义的Cookie名称和值,设置POST请求参数,并执行请求。最后,可以获取到响应结果。 需要注意的是,HttpClient库从Android 6.0(API级别23)开始被弃用,推荐使用HttpURLConnection或OkHttp库来代替。 ### 回答3: 安卓进行POST请求时,可以通过设置请求头来发送自定义cookie。以下是一个示例代码: ```java // 导入所需的包 import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; // 定义发送POST请求的方法 private String sendPostRequest(String url, String cookie, String postData) { StringBuilder response = new StringBuilder(); try { // 创建URL对象 URL obj = new URL(url); // 打开连接 HttpURLConnection conn = (HttpURLConnection) obj.openConnection(); // 设置请求方法为POST conn.setRequestMethod("POST"); // 设置请求头的cookie conn.setRequestProperty("Cookie", cookie); // 设置其他必要的请求头参数 // 发送POST请求参数,如果有的话 if (postData != null) { conn.setDoOutput(true); DataOutputStream wr = new DataOutputStream(conn.getOutputStream()); wr.writeBytes(postData); wr.flush(); wr.close(); } // 获取响应结果 BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); } catch (Exception e) { e.printStackTrace(); } return response.toString(); } // 调用示例 String url = "http://example.com/api"; String cookie = "your_custom_cookie=123456789"; String postData = "param1=value1&param2=value2"; String response = sendPostRequest(url, cookie, postData); ``` 在上述示例中,通过设置请求头的Cookie属性,将自定义的cookie值发送到服务器。根据实际需要,可以进一步设置其他请求头参数,如User-Agent等。发送POST请求时,可以传递需要发送的参数,通过DataOutputStream写入请求体中。最后,通过读取连接的输入流获取服务器返回的响应结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值