`
flash59
  • 浏览: 96420 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用java向一个Web站点发送POST请求

    博客分类:
  • WEB
阅读更多

向一个Web站点发送POST请求只需要简单的几步:

首先要和URL下的URLConnection对话。URLConnection可以很容易的从URL得到。比如:

java 代码
  1. // Using java.net.URL and    
  2.   
  3. //java.net.URLConnection    
  4.   
  5. URL url = new    
  6.   
  7. URL("http://jobsearch.dice.com/jobsearch/jobsearch.cgi");    
  8.   
  9. URLConnection connection = url.openConnection();    

然后把连接设为输出模式。URLConnection通常作为输入来使用,比如下载一个Web页。通过把URLConnection设为输出,你可以把数据向你个Web页传送。下面是如何做:

java 代码

最后,为了得到OutputStream,简单起见,把它约束在Writer并且放入POST信息中,例如:

java 代码
  1. ...    
  2.   
  3. OutputStreamWriter out = newOutputStreamWriter(uc.getOutputStream(), "8859_1");    
  4.   
  5. out.write("username=bob&password="+password+"");    
  6.   
  7. // remember to clean up    
  8.   
  9. out.flush();    
  10.   
  11. out.close();    
  12.   
  13. 这样就可以发送一个看起来象这样的POST:    
  14.   
  15. POST /jobsearch/jobsearch.cgi HTTP 1.0    
  16.   
  17. ACCEPT: text/plain    
  18.   
  19. Content-type: application/x-www-form-urlencoded    
  20.   
  21. Content-length: 99    
  22.   
  23. username=bob    
  24.   
  25. password=someword    
  26.   

一旦发送成功,用以下方法就可以得到服务器的回应:

connection.getInputStream();

一些Web站点用POST形式而不是GET,这是因为POST能够携带更多的数据,而且不用URL,这使得它看起来不那么庞大。使用上面列出的大致的代码,Java代码可以和这些站点轻松的实现对话。

分享到:
评论

相关推荐

    java-servlet-api.doc

    当一个Servlet被卸载时,引擎将不能给Servlet发送任何请求。引擎必须释放Servlet并完成无用存储单元的收集 Servlet映射技术\r 作为一个Servlet引擎的开发者,你必须对于如何映射客户端的请求到Servlet有大量的适应...

    webCrawler:一个简单的Web爬网程序从根域中获取URL链接并将其写入文件

    用户必须在上述终点处发送POST请求,请求正文为{“ url”:“ ”},并希望收到2XX成功消息。 它是用Java-8编写的,并且使用springboot且爬虫api是jsoup。 站点地图将写入在项目的根目录下创建的* .txt文件中。 二...

    IIS6.0 IIS,互联网信息服务

    一个IP地址对应多个Web站点 当按上步的方法建立好所有的Web站点后,对于做虚拟主机,可以通过给各Web站点设不同的端口号来实现,比如给一个Web站点设为80,一个设为81,一个设为82……,则对于端口号是80的Web站点,...

    EL表达式 (详解)

    initParam取得设定web站点的环境参数(Context) 例:一般的方法String userid = (String)application.getInitParameter("userid"); 可以使用 ${initParam.userid}来取得名称为userid 4)pageContext ...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    比如,两个相同行业不同地区的人使用同一个DTD文件来作为文档创建规范,那么他们的数据就很容易交换和共享。网上有其他人想补充数据,也只需要根据公用的DTD规范来建立文档,就立刻可以加入。 目前,已经有数量众多...

    JSTL高级用法

    initParam取得设定web站点的环境参数(Context) 例:一般的方法String userid = (String)application.getInitParameter("userid"); 可以使用 ${initParam.userid}来取得名称为userid  pageContext pageContext ...

    spring security 参考手册中文版

    设置一个自定义的AuthenticationEntryPoint 64 6.4方法安全 64 6.4.1 元素 65 使用protect-pointcut添加安全性切入点 66 6.5默认AccessDecisionManager 67 6.5.1自定义AccessDecisionManager 67 6.6验证管理器和命名...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。 1...

    jquery插件使用方法大全

    Jquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理...

    dotNetBeautifier:BurpSuite扩展,用于美化.NET消息参数并隐藏.NET Web应用程序随附的一些额外杂物(即__VIEWSTATE)

    它发出这样的请求: POST /Default.aspx HTTP/1.1Host: annoying-web-appReferer: https://annoying-web-app/Default.aspxCookie: ASP.NET_SessionId=zprxqvwll4yoi0gbeactgzddConnection: keep-aliveContent-

    ZendFramework中文文档

    3.2.2. 高级使用:持久一个 DbTable 结果对象 3.2.3. 高级用法示例 3.3. 摘要式认证 3.3.1. 简介 3.3.2. 规范(Specifics) 3.3.3. 身份(Identity) 3.4. HTTP 认证适配器 3.4.1. 简介 3.4.2. 设计回顾 ...

    react-universal:React Universal UI(开发中)

    Obs:不进行任何react-native热加载,或从Web站点( localhost:9000 )的任何组件重新加载 yarn storybbok 仿真器 yarn ios yarn android 皮棉 yarn lint 测试 yarn test 贡献 叉子! 创建功能分支: git checkout...

Global site tag (gtag.js) - Google Analytics