CloudB项目中到PHP开发WEB管理端,用Python开发服务控制端,在项目中Python的服务控制端有时候须要主动连接PHP的WEB管理端下载或上传配置參数或数据信息,这里採用的原理是Python模拟Httpclient,向PHP所在的Apache发起Get或Post请求。

这里将实现的技术代码进行公开。

一、Python以GET请求的方式,请求PHP页面,并获得返回值

1、python代码:

  1. <span xmlns="http://www.w3.org/1999/xhtml" style="">[root@AY python]#cat httpclientget.py
  2. #!/usr/bin/env python
  3. #coding=utf8
  4.  
  5. import httplib
  6.  
  7. httpclient=None
  8. print 'bb'
  9. try:
  10. httpclient=httplib.HTTPConnection('www.xxx.org',80)
  11. httpclient.request('GET','/CloudBean/capture.php?name=liu&pass=wew')
  12. res=httpclient.getresponse()
  13. print res.status
  14. print res.reason
  15. print res.read()
  16. except Exception,e:
  17. print "heelowr"
  18. </span>

2、php代码:     

  1. <span xmlns="http://www.w3.org/1999/xhtml" style="">[root@AY python]#cat /CloudBean/capture.php
  2. <?php
  3. echo $_GET["name"];
  4. echo $_GET["pass"];
  5. echo "GET:";
  6. ?
  7.  
  8. >
  9. </span>

二、Python以Post请求的方式,请求PHP页面。并获得返回值

1、Python代码:

  1. <span xmlns="http://www.w3.org/1999/xhtml" style="">[root@AY python]#cat httpclientpost.py
  2. #!/usr/bin/env python
  3. #coding=utf8
  4.  
  5. import httplib,urllib
  6.  
  7. httpclient=None
  8. try:
  9. params = urllib.urlencode({'name': 'tom', 'pass': 22})
  10. print 'aaa'
  11. headers = {"X-CPU": "arm/x86" , "X-USER": "234299044218541","X-RESOLUTION": "240x320","X-SYSTEM":"2.3","X-LANG":"en-us","X-SIGN":"a1ae6bee406a6b8aa0862969ba49cc1d", "X-IMSI":"3110012345678912","X-COUNTRY":"in","X-TIME":"1335339139"}
  12. httpclient=httplib.HTTPConnection('www.xxx.org',80)
  13. httpclient.request('POST','/CloudBean/cappost.php',params,headers)
  14. res=httpclient.getresponse()
  15. print res.status
  16. print res.reason
  17. print res.read()
  18. print res.getheaders()
  19. except Exception,e:
  20. print "error"
  21. </span>

2、PHP代码:

  1. <span xmlns="http://www.w3.org/1999/xhtml" style="">[root@AY python]#cat /CloudBean/cappost.php
  2. <?php
  3. echo $_POST["name"];
  4. echo $_POST["pass"];
  5. echo "post";
  6. ?
  7.  
  8. >
  9. </span>

Python向PHP发起GET与POST请求的更多相关文章

  1. python 爬虫 基于requests模块发起ajax的post请求

    基于requests模块发起ajax的post请求 需求:爬取肯德基餐厅查询http://www.kfc.com.cn/kfccda/index.aspx中指定某个城市地点的餐厅数据 点击肯德基餐厅查 ...

  2. python 爬虫 基于requests模块发起ajax的get请求

    基于requests模块发起ajax的get请求 需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据 用抓包工具捉取 使用ajax加载页面的请求 鼠标往下 ...

  3. python通过get,post方式发送http请求和接收http响应的方法,pythonget

    python通过get,post方式发送http请求和接收http响应的方法,pythonget 本文实例讲述了python通过get,post方式发送http请求和接收http响应的方法.分享给大家 ...

  4. 浏览器发起Get,Post请求时候传递的参数编码问题

    浏览器发起Get,Post请求时候传递的参数编码问题 最近开发一个网站的时候,用了很多ajax方法,在页面发起Get,post请求,中间自然捎带有很多参数,有中文,有英文,英文一般是不存在编码问题的, ...

  5. python接口自动化-发xml格式post请求

    前言 post请求相对于get请求多一个body部分,body部分常见的数据类型有以下四种(注意是常见的,并不是只有4种) application/x-www-form-urlencoded appl ...

  6. 可能会搞砸你的面试:你知道一个TCP连接上能发起多少个HTTP请求吗?

    本文由原作者松若章原创发布,作者主页:zhihu.com/people/hrsonion/posts,感谢原作者的无私分享. 1.引言 一道经典的面试题是:从 URL 在浏览器被被输入到页面展现的过程 ...

  7. Java基础/发起http和https请求

    Java中发起http和https请求 一般调用外部接口会需要用到http和https请求. 本案例为:前后端完全分离,前端框架(React+Mobx+Nornj),后端(Go语言). 面临问题:跨域 ...

  8. Python使用JsAPI发起微信支付 Demo

    Python使用JsAPI发起微信支付 Demo 这个是基于Django框架. 了解更多,可以关注公众号"轻松学编程" 1.公众号设置.微信商户号设置 这些都可以在官网查得到, 公 ...

  9. python Post方式发起http请求 使用百度接口地理编码

    import os import httplib import json import urllib baiduapi="api.map.baidu.com:80" src=&qu ...

随机推荐

  1. go环境变量配置liteide配置

    1.go环境变量配置 http://download.csdn.net/detail/defonds/9408855下载后直接安装如果都选默认就只要添加一个gopath就可以了 不是默认添加goroo ...

  2. Codeforces Beta Round #3 B. Lorry 暴力 二分

    B. Lorry 题目连接: http://www.codeforces.com/contest/3/problem/B Description A group of tourists is goin ...

  3. JS跳转页面的几种方法

    JS的几种跳转方式: 1. window.open(”url“) 2.用自定义函数 <script> function openWin(tag,obj) { obj.target=&quo ...

  4. Cisco路由技术基础知识详解

    第一部分 请写出568A的线序(接触网络第一天就应该会的,只要你掐过,想都能想出来) .网卡MAC地址长度是(  )个二进制位(16进制与2进制的换算关系,只是换种方式问,不用你拿笔去算) A.12  ...

  5. war后缀的文件

    其实war文件就是Java中web应用程序的打包.借用一个老兄的话,"当你一个web应用程序很多的时候,如果你想把它部署到别的机器上,来回拷这些文件是件挺郁闷的事情,如果要是一个文件就好了. ...

  6. dedecms会员注册注入漏洞

    一.首先访问“/data/admin/ver.txt”页面获取系统最后升级时间,(判断是否是dede的cms 以及看看是否和这个漏洞相对应)二.然后访问“/member/ajax_membergrou ...

  7. Qunit的使用

    1.新建一个html页面,如下 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "ht ...

  8. OSG立体模式下动态修改相机远近裁剪面的实现

    1. 非立体模式下动态修改相机远近裁剪面 class GLB_DLLCLASS_EXPORT CGlbGlobeClipHandler : public osg::NodeCallback    { ...

  9. DIV强制不换行

    一.单个DIV:1.用nobr元素 <html> <head> </head> <body> <div><nobr>不换行不换行 ...

  10. [Functional Programming ADT] Initialize Redux Application State Using The State ADT

    Not only will we need to give our initial state to a Redux store, we will also need to be able to re ...