获取网络接口里面的文件流

php开发调用各种接口在所难免,有时须要传递非常多參数。

在传递參数过程中 '&' 有时会被 解析成 ‘&’导致请求失败

经过查找资料和比較,发现php提供了多种方法:cUrl、fopen、file_get_contents等,就操作性、可靠性和高效来说 cURL还是不错的。

參考案比例如以下:

    /**
     * 获取网络接口里面的文件流
     **/
    public function GetWebFileStream($strUrl,$urlParams = '',$type = 'get'){
        $stream = "";
        if(!isset($strUrl) || empty($strUrl))
            return "";         //初始化
        $ch = curl_init();
        if($type === 'post'){
            curl_setopt_array($ch,[
                CURLOPT_URL              => $strUrl,
                CURLOPT_RETURNTRANSFER  => 1,
                CURLOPT_POST             => 1,
                CURLOPT_HEADER           => 0,
                CURLOPT_POSTFIELDS      => $urlParams
            ]);
        }
        else{
            curl_setopt_array($ch,[
                CURLOPT_URL              => $strUrl,
                CURLOPT_RETURNTRANSFER  => 1,
                CURLOPT_HEADER           => 0
            ]);
        }         //输出结果
        $stream = curl_exec($ch);         //推断curl请求是否超时
        if(curl_errno($ch)){
            $stream = file_get_contents($strUrl);
        }         //关闭
        curl_close($ch);         return $stream;
    }

GET调用:

 $url = "http://zhibo.fx678.com/index.php?

page=htnews&ps=$size&time=$time";
GetWebFileStream($url);

POST调用:

$strURL = "http://reschart.fx678.com/fx678dataWebService/UpdateDataContext.asmx/GetWillAndPublishedDateS";
$urlParams ="willtop=$willSize&top=$size&Clientdate=$clientDate&Key=$md5_key"; $strJSON = GetWebFileStream($strURL,$urlParams,'post');

以上案例仅供參考,很多其它cUrl 知识点请參考php手冊!

PHP 获取网络接口文件流的更多相关文章

  1. C#远程获取图片文件流的方法【很通用】

    因为之前写的代码,也能获取到图片流信息,但是会是凌乱的线条,后百度得这个方法,必须记录一下 C# try { WebRequest myrequest = WebRequest.Create(Http ...

  2. java获取classpath文件路径空格转变成了转义字符%20的问题

    java获取classpath文件路径空格转变成了转义字符%20的问题 这个问题很纠结,服务器的文件路径带有空格,空格被转化是%20了,悲剧就出现了 下面展示一段代码String path = get ...

  3. SNF开发平台WinForm之十三-单独从服务器上获取PDF文件进行显示-SNF快速开发平台3.3-Spring.Net.Framework

    1运行效果: 2开发实现: 如果需要单独显示PDF文件时用下面代码去实现,指定url地址. 地址: . 获取附件管理的实体对象: List<KeyValuePair<string, obj ...

  4. pdf文件流生成pdf文件

    protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Code.Login Starr_mode ...

  5. Java 读取excel 文件流

    public static void initType(String path) { try { //1 获取excel文件流 excel xls 文件 暂不支持xlsx if (path.conta ...

  6. Ajax异步请求返回文件流(eg:导出文件时,直接将导出数据用文件流的形式返回客户端供客户下载)

    在异步请求中要返回文件流,不能使用JQuery,因为$.ajax,$.post 不支持返回二进制文件流的类型,可以看到下图,dataType只支持xml,json,script,html这几种格式,没 ...

  7. 原生Ajax处理文件流

    在通过Ajax处理请求时,可能会遇到需要下载文件的情况,这里简要的说明下处理方法. let downloadFile = document.getElementById("downloadI ...

  8. java获取远程网络图片文件流、压缩保存到本地

    1.获取远程网路的图片 /** * 根据地址获得数据的字节流 * * @param strUrl * 网络连接地址 * @return */ public static byte[] getImage ...

  9. java获取文件流

      CreateTime--2017年9月1日14:49:21 Author:Marydon servlet获取文件流的两种方式 方式一:使用绝对路径(推荐使用) import java.io.Inp ...

随机推荐

  1. python 锁 多进程

    参考: http://www.cnblogs.com/huxi/archive/2010/06/26/1765808.html http://linhs.blog.51cto.com/370259/1 ...

  2. LeetCode OJ-- Insertion Sort List **

    https://oj.leetcode.com/problems/insertion-sort-list/ 链表实现插入排序 首先插入排序是指: a b c d e g m 对b也就是第二个位置选做元 ...

  3. Android 读取手机联系人、拨号、发送短信及长按菜单的操作

    本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要 ...

  4. react 使用antd导航组件实现事件传递并局部刷新DOM

    我们要实现一个通过点击顶部导航来查询左侧菜单的一个功能 在这个功能中,我们要应用到onClick={this.headNavMenuList.bind(this)}方法来传递点击 不同按钮来传递不同的 ...

  5. my-> git使用笔记

    要在本地新建分支test0227并切换到该分支,运行git checkoutout 并加上-b参数,如: git checkout -b test0227 这相当于执行下面这两条命令: git bra ...

  6. Linux(二) 常用命令

    Linux简介及Ubuntu安装 Linux,免费开源,多用户多任务系统.基于Linux有多个版本的衍生.RedHat.Ubuntu.Debianaa   安装VMware或VirtualBox虚拟机 ...

  7. 【lombok】lombok---帮你简化生成必要但臃肿的java代码工具 【映射注解和lombok注解同时使用 以及 映射注解放在属性和get方法上的区别】

    官方地址:https://projectlombok.org/ GitHub:https://github.com/rzwitserloot/lombok 指导说明文档:http://jnb.ociw ...

  8. 微信小程序实战 购物车功能

    代码地址如下:http://www.demodashi.com/demo/12400.html 一.准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.com/ ...

  9. Android组件间通信库EventBus学习

    项目地址:   https://github.com/greenrobot/EventBus EventBus主要特点 1. 事件订阅函数不是基于注解(Annotation)的,而是基于命名约定的,在 ...

  10. Android fragment (二)

    怎样使用fragment? 1.首先你要确定下你有多少个fragment要使用在一个activity里. 2.依据你的fragment的数量,创建继承自fragment的class.然后依据实际需求重 ...