首先先理解我下面的话
http请求method和data是分开的没有直接关系
data分为headers,urlquery,body
method有GET ,POST ,HEAD ,TRACE ,PUT ,DELETE ,OPTIONS ,CONNECT ,还可以自定义
任何method都可以提交headers,urlquery 或 body
要是不明白上面的话,问题大概就回答不了了.......
我的问题是 在ios中 怎么才能使用get请求时包含body参数!!!
没做过 IOS,不过我知道使用 socket 可以实现。不知道 IOS 的 http 组件是否支持自定义的 HTTP Method ?如果支持的话,这也是一条可以考虑的路。
理论上GET和POST没有本质区别,所以建议用POST做。
另,如果一定要用GET,建议把要传输的数据放在同一个对象里,例如你要传输的内容是:
则可以先构建要传输的对象(举例用JSON格式,其他格式也无所谓):
{"paramA":"valueA","paramB":"valueB","paramC":"valueC"}
然后对这个对象加密,比如得到密文:
uyUYbJhkIU*^GmklJL(Tu6RJHGHYRhgV$6U%&^%M<HJFHGFjJHGjgj
get和post没有区别。但是body和url是有区别的。比如body可以传二进制。当然你说把二进制数据转base64放在url也是可以的。但是有可能会太大,而且多了转来转去的过程
不管什么http方法都是可以在body里加数据的.具体你要看你用的框架是怎么实现的.
也就是说你问提的你用的那个httpclient库怎么在get方法中包含正文
系统自带的没有吗
我用系统自带的方式method改为get,写入body参数结果上行到服务器没了
@冰麟轻武: 都说了。你要问的是 你用的那个httpclient库怎么在get方法中包含正文
这种问题提问你至少要包含2个要点:
1.用的具体是哪个库
2.你要发送的具体请求报文结构
3.态度诚恳的问:有谁用过这个****库,怎么发送****的请求
@吴瑞祥: 现在的这些人,让他们“态度诚恳的问”就是在开玩笑。。。
@吴瑞祥: 系统自带的没有吗? 一定要有库才可以操作的吗? 不好意思我本身是做.net的不了解,现在只是为了解决问题,无所谓哪个库,只要能解决问题就可以
@顾晓北: 现在的这些人,让他们“态度诚恳的回答问题”也是在开玩笑。。。毕竟问问题还需要积分,回答随便这么吐槽嘲讽鄙视,话说回来,现在真的有很多人根本不明白http请求是怎么一回事,然后就瞎比比, 当然了 我也不明白ios是怎么回事,我从一开始的问题就是怎么在get请求中发送body参数......和库无关毕竟我不懂ios...只要能解决这个问题,什么库都行......另外要怎么才能显得态度诚恳.....如果我直接说问题,保证一群人来嘲笑我,"傻逼,get请求只能发送url参数,不能发送body参数"之类的,你要是经历过几次 你也诚恳不起来....另外我已经出了所有的分了
@冰麟轻武: data分为headers,urlquery,body,我对这句话存疑问而已,这样的理解我第一次看到,我理解的http,data=body,所以你现在理解我为什么那么回复你了?
@冰麟轻武: 至于诚恳的问题,你看“吴瑞祥”给你回复的第三点吧。。。
@顾晓北: 我只能说你的理解是错的,data表示数据.. 数据可以从header body urlquery中传递 header中不仅可以包含cookies,还可以包含其他必要信息,有很多比如阿里云,某些银行,参数加密的信息都是写在header中的 至于urlquery和body 本质的区别在于body可以传递二进制文件,urlquery不行 另外我再说一个大家都误解的问题http标准中没有对urlquery做长度限制,但是很多浏览器和服务器解析的时候有长度的限制,所以很多情况下大家会说body比urlquery传递的数据更多, 你可以再好好理解下http协议
@冰麟轻武: 一般对于这种问题,我会说“随你怎么想吧”,其实仅仅是看来你的“data分为headers,urlquery,body”这句话,我也不说什么了,你无非是把这三种东西统一叫做data而已,事实上你这么理解也不能完全说错,随便吧,不想做这种争辩。。。
@冰麟轻武: 系统自带的,也是个库..总会有名字的.问怎么做的问题,至少要描述请求你要做什么.
我这边对你的问题的理解是:在get请求中增加正文
IOS大神?楼主确定你理解的HTTP知识是正确的???
说实话,对于你们连http协议本质都搞不清楚的,还来回答。真不想搭理你们。
哈哈,这哥们做IOS的,工资估计能让楼上几位羞愧死,居然还敢嘲笑人家,有本事你转IOS啊。
我就是过来看看热闹的,呵呵。
看清楚,他自己说了“我是做.net的”。。。
如果他自己真的就像他自己说的“对http协议很清楚”,根本不会这么问问题。。。
现在的人就喜欢这样:问问题吧,人家好心来回答你,还遭人白眼,我就纳闷,这种人的脑子是怎么想的?
@顾晓北: 通常都是这样的啊,三流大学毕业的或者北大青鸟培训出来的,基础知识不扎实,
问问题又拽得好像别人欠他钱似的,不知道被哪个体育老师给带歪到沟里去的知识体系,
@爱编程的大叔: 那我就不清楚你所谓的“这哥们做IOS的,工资估计能让楼上几位羞愧死,居然还敢嘲笑人家,有本事你转IOS啊”是什么意思了。。。
@爱编程的大叔: 好吧。。。
@顾晓北: 年收入35w~40w左右, 工资不代表什么.你们要是不明白http请求method和data就不要在无谓的回答的, 安卓和.net均可以实现get请求的同时发送body参数,只有ios不行, 当然还有js也不行,js的XMLHttpRequest不支持get请求中发送body参数,但ios怎么说也应该比js强大吧.........不过这个问题现在已经无所谓了,我直接在服务器重写了.net mvc的请求解析,已经完全在服务器端忽略Method了......很多人都说做.net的人太水只会拖控件. 不知道ios是不是也差不多,只会用类库? 至少现在.net如果系统的类库满足不了需求,我可以还反射,或者重写,或者干脆自己实现一个....ios如果类库不支持就傻眼了吗
我用的是 AFNetworking 封装好的 http 请求 里面直接传入字典 就是 body 参数了 你可以去看看
似乎程序员都有脾气,哈哈