我们在调用RESTFul服务的时候,有的时候。第三方的服务会提供支持PATCH 操作的方法,在这样的情况下。我们假设我们以下的这样的方式,

去调用PATCH操作。肯定会返回40X的错误。

PATCH /tasks/v1/users/@me/lists/MTIxNzM1OTkzNjgxNTQ1OTcwNTc6MDow HTTP/1.1
content-type: application/json; charset=UTF-8
connection: close
accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
authorization: Bearer ya29.LgALd08g5-NIQxwAAAB111tdMC-Q-jXhMoRxYEUS107_bD9p6xdVEq9tht3dpQ
accept-encoding: iso-8859-1,*,utf-8
x-http-method-override: PATCH
accept-charset: utf-8
User-Agent: Jakarta Commons-HttpClient/3.0.1
Host: www.googleapis.com:443
Content-Length: 45 {
"title":"This is a test for patch 5555"
}

那么,解决的方案是什么呢?发送的时候。我们还是用POST方法。仅仅只是我们在HTTP的消息头里面加上一个属性:x-http-method-override

然后把这个属性的值设置成“PATCH”,然后就能够了。请看以下的測试的请求和结果。

(1)測试请求

(2) 測试返回的结果,说明Patch操作的改动成功了。!!

{
"kind": "tasks#taskList",
"id": "MTIxNzM1OTkzNjgxNTQ1OTcwNTc6MDow",
"etag": "\"esSgSc9hKkvJ92xs_2jT5Am6L4c/KKY36xrOZKKq3hKD4zW4yCwNmJo\"",
"title": "This is a test for patch 5555",
"updated": "2014-06-13T08:31:24.000Z",
"selfLink": "https://www.googleapis.com/tasks/v1/users/@me/lists/MTIxNzM1OTkzNjgxNTQ1OTcwNTc6MDow"
}

RESTFul中的那些事(2)----怎样支持RESTFul的HTTP Patch方法?的更多相关文章

  1. RESTFul中的那些事(1)---在RESTFul中,HTTP Put和Patch操作的差别?

    笔者在用调用Google Calendar和Google Tasks的RESTFul API的时候.遇到了一个特殊的操作,PATCH. 那么PATCH操作和PUT操作的差别是什么呢? 依据PATCH ...

  2. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...

  3. polaris: 一个用go实现的支持restful的web框架

    介绍 polaris是一个用go实现的支持restful的web框架,主要参考tornado进行设计. 虽然在go里面搭建一个http server非常的简单,这里强烈推荐gorilla,但并没有很好 ...

  4. RestKit ,一个用于更好支持RESTful风格服务器接口的iOS库

    简介 RestKit 是一个用于更好支持RESTful风格服务器接口的iOS库,可直接将联网获取的json/xml数据转换为iOS对象. 项目主页: RestKit 最新示例: 点击下载 注意: 如果 ...

  5. 你所不知道的html5与html中的那些事(四)——文本标签

    文章简介:       关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后 ...

  6. SSM整合 完美支持RESTful(Jsp和客户端<android ios...>)

    一 RESTful简介 RESTful是一种网络应用程序的设计风格和开发方式 它结构清晰 符合标准 易于理解 扩展方便 REST 即Representational State Transfer的缩写 ...

  7. 微信开发中网页授权access_token与基础支持的access_token异同

    问题1:网页授权access_token与分享的jssdk中的access_token一样吗? 答:不一样.网页授权access_token 是一次性的,而基础支持的access_token的是有时间 ...

  8. 【AspNetCore】【WebApi】扩展Webapi中的RouteConstraint中,让DateTime类型,支持时间格式化(DateTimeFormat)

    扩展Webapi中的RouteConstraint中,让DateTime类型,支持时间格式化(DateTimeFormat) 一.背景 大家在使用WebApi时,会用到DateTime为参数,类似于这 ...

  9. Unity中制作游戏的快照游戏支持玩家拍快照

    Unity中制作游戏的快照游戏支持玩家拍快照 有些游戏支持玩家“拍快照”,也就是将游戏的精彩瞬间以图片的形式记录下来的功能.这个功能比较有趣,而且以后的用途也会很广,为此本节打算介绍:截取矩形区域内游 ...

随机推荐

  1. PostgreSQL 资源

    http://blog.163.com/digoal@126/blog/static/163877040201172183022203/ http://m.oschina.net/u/2426299? ...

  2. onInterceptTouchEvent 与 onTouchEvent 分析与MotionEvent在ViewGroup与View中的分发

    onInterceptTouchEvent 与 onTouchEvent 分析与MotionEvent在ViewGroup与View中的分发        Notice:本文将紧接着 Android ...

  3. HTTP的KeepAlive是开启还是关闭?

    HTTP的KeepAlive是开启还是关闭? http://itindex.net/detail/50719-http-keepalive 1.KeepAlive的概念与优势 HTTP的KeepAli ...

  4. WIN8.1 IE11 F12开发者人员工具,开启什么都不显示

    WIN8.1 IE11 F12开发者人员工具,开启什么都不显示,求大神帮忙?  IE11也没法重装, 还原IE设置过了. 没有效果.   也试过把IE停掉,重启后再重新打开 也没用 已经解决了  删除 ...

  5. Design Pattern Singleton 单一模式

    单一模式的几个注意点: 一) 设计单一模式,首先须要把构造函数给私有化了,不让外界訪问,那么外界仅仅能通过提供的函数获取一个新的类. 二) C++的单一模式,记得要在类外初始化一个类,否则或内存出错的 ...

  6. CHM编写软件

    工具选择 1.         HTML编辑工具:就是用什么软件写文档的问题.一直都是做.NET开发,所以选择HTML编辑也大都在MS阵营里选.主要有以下几种HTML编辑器. (1)       Dr ...

  7. T4 生成实体和简单的CRUD操作

    <#@ template debug="false" hostspecific="false" language="C#" #> ...

  8. iOS获取网络类型的四种方法

    Reachability类只能区分WIFI和WWAN类型,却无法区分2G网和3G网. 网上也有些方法,却都存在Bug. 经过网上查找资料和测试,基本上总结了以下几种方法: 1.使用导航栏的方式:(私有 ...

  9. Android Binder 设计与实现 - 设计篇

    关键词 Binder Android IPC Linux 内核 驱动 摘要 Binder是Android系统进程间通信(IPC)方式之一.Linux已经拥有管道,system V IPC,socket ...

  10. 【BZOJ】【3437】小P的牧场

    DP/斜率优化 斜率优化基本题……等等,好像就没啥变化啊= = 嗯目测这题跟仓库建设差不多?写题的时候倒是没想这么多……直接推了公式. $$f[i]=min\{f[j]+cal(j,i)+a[i]\} ...