热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

androidcookie读写,如何在Android上使用Cookie发出http请求?

由于不建议使用Apache库,因此对于那些想使用的人HttpURLConncetion,我编写了此类,以借助以下答案发送Get和PostR

由于不建议使用Apache库,因此对于那些想使用的人HttpURLConncetion,我编写了此类,以借助以下答案发送Get和Post Request :

public class WebService {

static final String COOKIES_HEADER = "Set-COOKIE";

static final String COOKIE = "COOKIE";

static COOKIEManager msCOOKIEManager = new COOKIEManager();

private static int responseCode;

public static String sendPost(String requestURL, String urlParameters) {

URL url;

String response = "";

try {

url = new URL(requestURL);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setReadTimeout(15000);

conn.setConnectTimeout(15000);

conn.setRequestMethod("POST");

conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");

if (msCOOKIEManager.getCOOKIEStore().getCOOKIEs().size() > 0) {

//While joining the COOKIEs, use ',' or ';' as needed. Most of the server are using ';'

conn.setRequestProperty(COOKIE ,

TextUtils.join(";", msCOOKIEManager.getCOOKIEStore().getCOOKIEs()));

}

conn.setDoInput(true);

conn.setDoOutput(true);

OutputStream os = conn.getOutputStream();

BufferedWriter writer = new BufferedWriter(

new OutputStreamWriter(os, "UTF-8"));

if (urlParameters != null) {

writer.write(urlParameters);

}

writer.flush();

writer.close();

os.close();

Map> headerFields = conn.getHeaderFields();

List COOKIEsHeader = headerFields.get(COOKIES_HEADER);

if (COOKIEsHeader != null) {

for (String COOKIE : COOKIEsHeader) {

msCOOKIEManager.getCOOKIEStore().add(null, HttpCOOKIE.parse(COOKIE).get(0));

}

}

setResponseCode(conn.getResponseCode());

if (getResponseCode() == HttpsURLConnection.HTTP_OK) {

String line;

BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

while ((line = br.readLine()) != null) {

response += line;

}

} else {

response = "";

}

} catch (Exception e) {

e.printStackTrace();

}

return response;

}

// HTTP GET request

public static String sendGet(String url) throws Exception {

URL obj = new URL(url);

HttpURLConnection con = (HttpURLConnection) obj.openConnection();

// optional default is GET

con.setRequestMethod("GET");

//add request header

con.setRequestProperty("User-Agent", "Mozilla");

/*

* https://stackoverflow.com/questions/16150089/how-to-handle-COOKIEs-in-httpurlconnection-using-COOKIEmanager

* Get COOKIEs form COOKIEManager and load them to connection:

*/

if (msCOOKIEManager.getCOOKIEStore().getCOOKIEs().size() > 0) {

//While joining the COOKIEs, use ',' or ';' as needed. Most of the server are using ';'

con.setRequestProperty(COOKIE ,

TextUtils.join(";", msCOOKIEManager.getCOOKIEStore().getCOOKIEs()));

}

/*

* https://stackoverflow.com/questions/16150089/how-to-handle-COOKIEs-in-httpurlconnection-using-COOKIEmanager

* Get COOKIEs form response header and load them to COOKIEManager:

*/

Map> headerFields = con.getHeaderFields();

List COOKIEsHeader = headerFields.get(COOKIES_HEADER);

if (COOKIEsHeader != null) {

for (String COOKIE : COOKIEsHeader) {

msCOOKIEManager.getCOOKIEStore().add(null, HttpCOOKIE.parse(COOKIE).get(0));

}

}

int responseCode = con.getResponseCode();

BufferedReader in = new BufferedReader(

new InputStreamReader(con.getInputStream()));

String inputLine;

StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {

response.append(inputLine);

}

in.close();

return response.toString();

}

public static void setResponseCode(int responseCode) {

WebService.responseCode = responseCode;

Log.i("Milad", "responseCode" + responseCode);

}

public static int getResponseCode() {

return responseCode;

}

}



推荐阅读
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了NetCore WebAPI开发的探索过程,包括新建项目、运行接口获取数据、跨平台部署等。同时还提供了客户端访问代码示例,包括Post函数、服务器post地址、api参数等。详细讲解了部署模式选择、框架依赖和独立部署的区别,以及在Windows和Linux平台上的部署方法。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
author-avatar
了不起的老狐_226
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有