RPC SOAP REST API API HTTP JSON XML PHP PHP PHP PHP PHP HTTP request/response cycle HTTP HTTP verbs headers Cookies JSON XML PHP RPC SOAP RESTful HTTP

Similar documents

untitled

ASP 電子商務網頁設計

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK

關於本書 Part 3 CSS XHTML Ajax Part 4 HTML 5 API JavaScript HTML 5 API Canvas API ( ) Video/Audio API ( ) Drag and Drop API ( ) Geolocation API ( ) Part 5

final

Microsoft Word - SPEC

Microsoft Word - PHP7Ch01.docx

(CIP) Web /,. :, ISBN X.W T P393.4 CIP (2004) Web ( ) ( / ) : * 787

ebook4-12

WWW PHP

vi JSON JSON API XML JSON JSON JavaScript RESTful JSON Douglas Crockford JSON / RESTful API JavaScript Node.js Ruby on Rails Java Groovy

Microsoft Word - YDB doc

5-1 nav css 5-2

目 录(目录名)

R3105+ ADSL

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

目录

Network Bandwidth Applications MATE Applications Applications On Demand Calendaring Load Balancer Live Archive Design Northbound Service,Netwo

SEC-220

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

C3_ppt.PDF

bootstrap - 2

13 根 据 各 种 网 络 商 务 信 息 对 不 同 用 户 所 产 生 的 使 用 效 用, 网 络 商 务 信 息 大 致 可 分 为 四 级, 其 中 占 比 重 最 大 的 是 ( A ) A 第 一 级 免 费 信 息 B 第 二 级 低 收 费 信 息 C 第 三 级 标 准 收 费

epub29-13

UDC The Design and Implementation of a Specialized Search Engine Based on Robot Technology 厦门大学博硕士论文摘要库

untitled

05 01 accordion UI containers 03 Accordion accordion UI accordion 54

ARP ICMP

Microsoft Word - WebGoat用户指南-beta2.doc

97

目 录 目 录 平 台 概 述 技 术 架 构 技 术 特 点 基 于 统 一 平 台 的 多 产 品 线 支 撑 先 进 性 安 全 性 开 放 性 高 性 能 和

Microsoft Word SRS - 軟體需求規格.doc

untitled

數位圖書館/博物館相關標準 2

untitled

第 4 章 XMLHttpRequest 对象 AJAX AJAX 2 iframe AJAX iframe XMLHttpRequest JavaScript iframe AJAX XMLHttpRequest XMLHttpRequest Server Access Object Web XM

目 录 第 五 部 分 第 六 部 分 第 七 部 分 第 八 部 分 投 标 邀 请 投 标 人 须 知 附 表 评 标 方 法 和 评 分 细 则 项 目 需 求 和 技 术 方 案 要 求 1

iGENUS爱琴思邮件系统技术白皮书

SiteView技术白皮书

untitled

ebook70-13

IP505SM_manual_cn.doc

p.2 1 <HTML> 2 3 <HEAD> 4 <TITLE> </TITLE> 5 </HEAD> 6 7 <BODY> 8 <H3><B> </B></H3> 9 <H4><I> </I></H4> 10 </BODY> </HTML> 1. HTML 1. 2.

1. 2. Flex Adobe 3.

epub 79-1

互動網頁技術系列課程 HTML與CSS網站基礎設計 [12pt]

FileMaker 15 WebDirect 指南

快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实


ext-web-auth-wlc.pdf


目 錄 第 一 章 weberp 簡 介... 6 第 一 節 概 述... 6 第 二 節 安 全 性... 7 第 三 節 功 能... 7 一 銷 售 及 訂 單... 7 二 稅... 8 三 應 收 帳 款... 8 四 存 貨... 8 五 購 買... 9 六 應 付 帳 款... 9

目 录 1. 前 言 为 什 么 要 用 ESB 技 术 发 展 业 务 需 求 IT 需 求 IT 与 业 务 一 致 性 要 求 TongIntegrator ESB v5 简 介..

Microsoft Word - 01.DOC

XXXXXXXX

宁夏专业技术人员服务平台

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明

ebook140-11

1 产 品 简 介 特 性 包 装 产 品 外 观 电 脑 系 统 要 求 硬 件 安 装 软 件 安 装 软 件 操 作 IP

温州市政府分散采购

QVM330 多阜寬頻路由器

untitled

06 C H A P T E R 6-1 WWW 6-2 WWW WWW WWW

SL2511 SR Plus 操作手冊_單面.doc

turbomail方案

一.NETGEAR VPN防火墙产品介绍

<4D F736F F D D352DBED6D3F2CDF8D7E9BDA8D3EBB9DCC0EDCFEEC4BFBDCCB3CCD5FDCEC42E646F63>

QVM330 多阜寬頻路由器

引 例 3 现 实 生 活 中 的 电 子 商 务 案 例 1 王 小 姐 是 一 家 网 络 公 司 职 员, 现 在 已 经 是 有 八 个 月 身 孕 的 准 妈 妈 由 于 出 行 不 是 很 方 便, 但 是 又 要 购 置 一 些 孕 妇 与 婴 儿 出 生 后 的 物 品 于 是 来

PL600 IPPBX 用户手册_V2.0_.doc

第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能

(Guangzhou) AIT Co, Ltd V 110V [ ]! 2

Microsoft Word - 最新正文.doc

二 智 慧 財 產 權 宣 導 資 料 三 世 新 大 學 導 師 制 度 實 施 辦 法..36 四 導 生 ( 守 護 神 ) 系 統 使 用 畫 面 說 明 世 新 大 學 紫 錐 花 運 動 宣 導 資 料. 42 世 新 大 學 無 菸 校 園 實 施 辦 法. 4

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

<4D F736F F D203120BBA5C1AACDF8BBF9B4A1B1EAD7BC2E646F63>

2 目 录 第 一 部 分 县 级 填 报 角 色 系 统 登 录 信 息 管 理 站 内 信 息 查 看 信 息 回 复 信 息 信 息 查 询 新 建

1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C) (D) 5. ( B ) (Stored Program) (A) H

Microsoft Word - ch02.doc

二 智 慧 財 產 權 宣 導 資 料 三 世 新 大 學 導 師 制 度 實 施 辦 法..37 四 導 生 ( 守 護 神 ) 系 統 使 用 面 說 明 世 新 大 學 推 動 紫 錐 花 運 動 宣 導 資 料. 41 世 新 大 學 無 菸 校 園 實 施 辦

讲 授 内 容 Internet 发 展 简 史 WWW 基 础 HTML 简 介 制 作 一 个 HTML 页 面 HTML 文 档 结 构 HTML 基 本 元 素

LTM Management Console

一只特立独行的猪.doc

WordPress OSSF OSSF is Seeking Software Freedom 1 blog WordPress WordPress WordPress WordPress 2 WordPress WordPress is a state-of-the-art semantic pe

ebook71-13

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式

untitled

網站安全

Microsoft Word PHPCh15.docx

Data Server_new_.doc

速递易开放平台认证规范

<4D F736F F D20B9FABCD2BBFAB9D8B0ECB9ABBDA8D6FEBACDB4F3D0CDB9ABB9B2BDA8D6FEC4DCBAC4BCE0B2E2CFB5CDB3C8EDBCFEBFAAB7A2D6B8B5BCCBB5C3F7CAE92E646F63>

專業式報告

等 特 定 服 务 换 句 话 说, 设 备 的 可 能 用 途 取 决 于 在 用 户 购 买 它 时 预 先 安 装 的 应 用 程 序 这 在 新 移 动 设 备 中 发 生 了 巨 大 变 化, 新 移 动 设 备 几 乎 是 各 种 使 用 模 型 的 一 个 入 口 所 有 参 与 方,

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

untitled

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

基于CDIO一体化理念的课程教学大纲设计

Bus Hound 5

Transcription:

RPC SOAP REST API API HTTP JSON XML PHP PHP PHP PHP PHP HTTP request/response cycle HTTP HTTP verbs headers Cookies JSON XML PHP RPC SOAP RESTful HTTP API API 前言 vii

第一章 HTTP HTTP HyperText Transfer Protocol web HTTP request response HTTP URL verb headers status code body HTTP [page-1] server client http://lornajane.net 1-1 HTTP http://lornajane.net WordPress

2 HTTP [page-2] GET / HTTP/1.1 Host: www.lornajane.net Connection: keep-alive Cache-Control: no-cache Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/ *;q=0.8 User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)... Accept-Encoding: gzip, deflate, sdch Accept-Language: en-gb,en-us;q=0.8,en;q=0.6 GET HTTP/1.1 200 OK Server: Apache/2.4.7 (Ubuntu) X-Powered-By: PHP/5.5.9-1ubuntu4.6 X-Pingback: http://www.lornajane.net/xmlrpc.php Expires: Wed, 11 Jan 1984 05:00:00 GMT Cache-Control: no-cache, must-revalidate, max-age=0 Content-Encoding: gzip Content-Type: text/html; charset=utf-8 Content-Length: 8806 Date: Tue, 15 Sep 2015 08:43:54 GMT X-Varnish: 612483212 Age: 0 Via: 1.1 varnish <!DOCTYPE html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width" /> <meta name="bitly-verification" content="ff69fb2e45ef"/> <title>home - LornaJaneLornaJane Lorna Jane Mitchell&#039;s Website</title> <link rel="shortcut icon" href="http://www.lornajane.net/wp-content/themes/lj/ images/favicon.ico">... HTTP

HTTP 3 1-1 lornajane.net HTTP Google kittens [page-3] 1. http://www.google.com Location 301 http://www.google.co.uk 2. redirect http://www.google.co.uk 3. https://www.google.co.uk/search?q=kittens

4 HTTP URL 中問號 (?) 之後的部分稱為 查詢字串 (query string), 這是向特定 URL 或端點 (endpoint) 傳遞附加資料的一種方法 assets asynchronously JavaScript API [page-4] PHP PHP API PHP PHP API PHP PHP API API PHP API PHP HTTP tweets 1-2 當你和一個既提供 API 又呼叫 API 的應用程式打交道時, 請注意變數的命名, 建議你加入 request 關鍵字以避免混淆

HTTP 5 1-2 API HTTP HTTP HTTP [page-5] command-line tool PHP 10 debugging HTTP http://requestb.in API request bin URL HTTP API http://example.com http://example.net http://example.org Internet Assigned Numbers Authority http://www.iana. org/domains /special HTTPResponder http://httpresponder.com GitHub

6 HTTP httpbin.org http://requestb.in http://requestb.in/ example HTTP curl http://curl.haxx.se curl PHP curl extension 12 PHP HTTP [page-6] curl curl http://requestb.in/example API Web GET POST GET POST HTTP -X switch POST curl -X POST http://requestb.in/example GET POST -X -v STDERR STDOUT $ curl -v -X POST http://requestb.in/example -d name="lorna" -d email="lorna@example.com" -d message="this HTTP stuff is rather excellent" * Hostname was NOT found in DNS cache * Trying 54.197.228.184... * Connected to requestb.in (54.197.228.184) port 80 (#0)

HTTP 7 > POST /example HTTP/1.1 > User-Agent: curl/7.38.0 > Host: requestb.in > Accept: */* > Content-Length: 78 > Content-Type: application/x-www-form-urlencoded > * upload completely sent off: 78 out of 78 bytes < HTTP/1.1 200 OK < Connection: keep-alive * Server gunicorn/19.3.0 is not blacklisted[page-7] < Server: gunicorn/19.3.0 < Date: Tue, 07 Jul 2015 14:49:57 GMT < Content-Type: text/html; charset=utf-8 < Content-Length: 2 < Sponsored-By: https://www.runscope.com < Via: 1.1 vegur < * Connection #0 to host requestb.in left intact curl curl less grep curl terminal progress output bar -s curl -s -v less pager curl -s -v http://requestb.in/example 2>&1 less 2>&1 STDERR STDOUT less STDOUT API curl -d field POST curl curl -X POST http://requestb.in/example -d name="lorna" -d email="lorna@example.com" -d message="this HTTP stuff is rather excellent"

8 HTTP API POST JSON XML curl -d curl name=lorna&email=lorna@example.com @ -d curl curl -X POST http://requestb.in/example -d @data.txt HTTP curl -H Accept HTML [page-8] curl -H "Accept: text/html" http://requestb.in/example curl Cookie 4 Cookie Cookie Cookie Cookie curl Cookie Cookie cookie jar HTTP Cookie curl -c cookiejar.txt http://requestb.in/example cookiejar.txt Cookie cookie jar -b Cookie curl -b cookiejar.txt http://requestb.in/example Cookie -b -c cookiejar Cookie

HTTP 9 curl HTTPie http://httpie.org curl curl [page-9] 1-3 HTTPie 1-3 curl HTTPie GET --print -p HTTPie H B h b hb curl b http -p b http://requestb.in/example HTTPie URL POST

10 HTTP $ http -p bhbh -f http://requestb.in/example name=lorna email=lorna@example.com message="this HTTP stuff is rather excellent" POST /example HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate Connection: keep-alive Content-Length: 80 Content-Type: application/x-www-form-urlencoded; charset=utf-8 Host: requestb.in User-Agent: HTTPie/0.8.0 name=lorna&email=lorna%40example.com&message=this+http+stuff+is+rather+excellent HTTP/1.1 200 OK[page-10] Connection: keep-alive Content-Length: 2 Content-Type: text/html; charset=utf-8 Date: Tue, 07 Jul 2015 14:46:28 GMT Server: gunicorn/19.3.0 Sponsored-By: https://www.runscope.com Via: 1.1 vegur ok HTTPie : Accept $ http -p H -f http://requestb.in/example Accept:text/html GET /149njzd1 HTTP/1.1 Accept: text/html Accept-Encoding: gzip, deflate Connection: keep-alive Content-Type: application/x-www-form-urlencoded; charset=utf-8 Host: requestb.in User-Agent: HTTPie/0.8.0 curl HTTPie HTTP Chrome Firefox Opera Safari IE HTTP

HTTP 11 API Firefox Developer Toolbar plugin FireBug http://getfirebug.com LiveHTTPHeaders http://livehttpheaders.mozdev.org 1-4 1-4 LiveHTTPHeaders HTTP Cookie Chrome Edit This Cookie Cookie Cookie Cookie [page-11] authentication curl

12 HTTP Chrome ModHeader 1-5 1-5 Chrome ModHeader PHP HTTP PHP HTTP PHP API PHP curl PHP PHP stream-handling [page-12] Guzzle PHP curl 6 HTTP PHP curl wrapper PHP GET <?php

HTTP 13 $url = "http://www.lornajane.net/"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); URL GET curl_setopt() curl http://php.net CURLOPT_RETURNTRANSFER curl HTTP flag [page-13] HTTP POST JSON Content-Type <?php $url = "http://requestb.in/example"; $data = ["name" => "Lorna", "email" => "lorna@example.com"]; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json'] ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); curl_setopt() POST CURLOPT_POST 1 CURLOPT_ POSTFIELDS Content-Type 3 PHP curl interface PHP HTTP PHP allow_url_fopen

14 HTTP PHP http://bit.ly/php-allow_url_fopen file_get_contents() GET <?php $result = file_get_contents("http://www.lornajane.net/"); PHP HTTP FTP SSL GET JSON POST [page-14] <?php $url = "http://requestb.in/example"; $data = ["name" => "Lorna", "email" => "lorna@example.com"]; $context = stream_context_create[[ 'http' => [ 'method' => 'POST', 'header' => ('Accept: application/json', 'Content-Type: application/json'), 'content' => json_encode($data) ] ]]; $result = file_get_contents($url, false, $context); context PHP PHP HTTP Guzzle http://guzzlephp.org PHP library HTTP Composer http://getcomposer.org Composer GitHub 6 Guzzle POST Guzzle <?php require "vendor/autoload.php";

HTTP 15 $url = "http://requestb.in/example"; $data = ["name" => "Lorna", "email" => "lorna@example.com"]; $client = new \GuzzleHttp\Client(); $result = $client->post($url, ["json" => $data]); echo $result->getbody(); Guzzle http://docs.guzzlephp.org Composer autoloader Guzzle URL Guzzle client POST json Guzzle JSON http://requestb.in [page-15] HTTP PHP PHP framework Guzzle