php模拟post提交请求,调用接口

/**
     * 模拟post进行url请求
     * @param string $url
     * @param string $param
     */
    function request_post($url = ‘‘, $param = ‘‘) {
        if (empty($url) || empty($param)) {
            return false;
        }
        
        $postUrl = $url;
        $curlPost = $param;
        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
        curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
        $data = curl_exec($ch);//运行curl
        curl_close($ch);
        
        return $data;
    }

这是方法,下面是具体的调用案例。

function testAction(){
        $url = ‘http://mobile.jschina.com.cn/jschina/register.php‘;
        $post_data[‘appid‘]       = ‘10‘;
        $post_data[‘appkey‘]      = ‘cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ‘;
        $post_data[‘member_name‘] = ‘zsjs123‘;
        $post_data[‘password‘]    = ‘123456‘;
        $post_data[‘email‘]    = ‘[email protected]‘;
        $o = "";
        foreach ( $post_data as $k => $v ) 
        { 
            $o.= "$k=" . urlencode( $v ). "&" ;
        }
        $post_data = substr($o,0,-1);

        $res = $this->request_post($url, $post_data);       
        print_r($res);

    }

这样就提交请求,并且获取请求结果了。一般返回的结果是json格式的。

这里的post是拼接出来的。

也可以改造成下面的方式。

/**
     * 模拟post进行url请求
     * @param string $url
     * @param array $post_data
     */
    function request_post($url = ‘‘, $post_data = array()) {
        if (empty($url) || empty($post_data)) {
            return false;
        }
        
        $o = "";
        foreach ( $post_data as $k => $v ) 
        { 
            $o.= "$k=" . urlencode( $v ). "&" ;
        }
        $post_data = substr($o,0,-1);

        $postUrl = $url;
        $curlPost = $post_data;
        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
        curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
        $data = curl_exec($ch);//运行curl
        curl_close($ch);
        
        return $data;
    }

将拼接也封装了起来,这样调用的时候就更简洁了。

function testAction(){
        $url = ‘http://mobile.jschina.com.cn/jschina/register.php‘;
        $post_data[‘appid‘]       = ‘10‘;
        $post_data[‘appkey‘]      = ‘cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ‘;
        $post_data[‘member_name‘] = ‘zsjs124‘;
        $post_data[‘password‘]    = ‘123456‘;
        $post_data[‘email‘]    = ‘[email protected]‘;
        //$post_data = array();
        $res = $this->request_post($url, $post_data);       
        print_r($res);

    }
时间: 2024-08-24 00:18:56

php模拟post提交请求,调用接口的相关文章

关于http请求调用接口

1.这是通过json传值进行调用 (1)public static void appadd() {        try {            //创建连接            URL url = new URL(ADD_URL);            HttpURLConnection connection = (HttpURLConnection) url                    .openConnection();            connection.setD

php模拟post提交请求,curl调用接口

/** * 模拟post进行url请求 * @param string $url * @param array $post_data */ function request_post($url = '', $post_data = array()) { if (empty($url) || empty($post_data)) { return false; } $o = ""; foreach ( $post_data as $k => $v ) { $o.= "$k

Http Client请求调用接口

引用Nettonsoft.Json 引用System.Net.Http /// <summary> /// Http Client请求 /// </summary> /// <param name="url">api地址</param> /// <param name="dic">参数,这里用的是json格式</param> /// <returns></returns>

PHP模拟post提交数据方法汇总

使用php模拟post传值虽然在日常生活中用到的不是很多,但是在某些场合还是经常用到的.下面脚本之家小编给大家整理了三种php模拟post传值的方法,file_get_contents.curl和socket,需要的朋友参考下 第一种:file_get_contents来模拟post <php function file_get_contents_post($url, $post){ $options = array( ‘http‘=> array( ‘method‘=>‘POST‘,

xml模板提交请求submit_request

1. 首先调用函数 fnd_request.add_layout 来确定输出文件调用方法: result := fnd_request.add_layout(template_appl_name => :template_appl_name,                       template_code => :template_code,                       template_language => :template_language,       

python调用接口,python接收post请求接口(附完整代码)

与Scala语言相比,Python有其独特的优势和广泛的应用,python调用接口,因此Spark也推出了PySpark,它在框架上提供了一个使用Python语言的接口,python接收post请求接口为数据科学家使用框架提供了方便. 众所周知,Spark框架主要由Scala语言实现,它还包含少量的Java代码.Spark面向用户的编程接口也是Scala.然而,Python在数据科学领域一直占据着重要的地位.仍然有大量的数据工程师使用各种Python数据处理和科学计算库,如numpy.熊猫.sc

http请求POST和GET调用接口以及反射动态调用Webservices类

此代码是API.WebSrvices动态调用的类,做接口调用时很实用. Webservices动态调用使用反射的方式很大的缺点是效率低,若有更好的动态调用webservices方法,望各位仁兄不吝贴上代码. using System; using System.IO; using System.Net; using System.Text; using System.Web; using System.Collections.Generic; using System.CodeDom.Compi

java编程——servlet和Ajax异步请求的接口编程(没有调用数据库的数据)

编程应用背景: 使用HttpServlet接口来编写一个动态登录的接口(需要在Tomcat容器发布) 登录的 LoginSample 类代码: 1 package com.zhang.java; 2 3 public class LoginSample { 4 public LoginSample() { //构造方法 5 // System.out.println("构造方法被调用!"); 6 } 7 8 public boolean login(String ln, String

java编程(2)——servlet和Ajax异步请求的接口编程(有调用数据库的数据)

第一步: 1.为项目配置 Tomcat 为 server: 2.导入 mysql的jar包 到项目目录中: 第二步:编码 1.数据库连接类ConnectMysql.java代码: 1 package com.testing.mysql; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 6 public class ConnectMysql { 7 //设置连接的成员变量 8 public Connection