http请求最长用的方法是 get 和 post 方法

本文详细解释了HTTP请求中的GET和POST方法的区别。GET方法适用于简单请求,直接将参数拼接到URL后;POST方法则用于更复杂的请求场景,尤其是上传文件时,通过multipart/form-data格式提交数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

get方法和post方法相比理解起来比较简单,get方法可以直接请求一个url,也可以url后面拼接上参数作为一个新的url地址进行请求。get方法后面的value要经过unicode编码。form的enctype属性默认为application/x-www-form-urlencoded。不能发送二进制文件。

post方法相对要复杂一些。首先post方法要设置key和value ,所有的key和value都会拼接成 key1=value1&key2=value2的样式的字符串,然后这个字符串转化为二进制放到 http请求的body中。当请求发送的时候,也就跟随body一起传给服务器。http请求Content-Type设置为:application/x-www-form-urlencoded。这里讲的只是简单的post请求,一般发送文件不会选择这种方式(从技术方面考虑也可以发送文件,就是把文件以 key 和 value的方式放入)。下面我们再讨论一下post发送二进制文件更加普遍的方法。

post发送文件首先网页中的form的enctype设置为multipart/form-data,然后浏览器会把表单中需要提交的项目分隔,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符(boundary)。 


若您的请求为get方式,则使用ASIHTTPRequest类来实现您的需求。

如:ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:reqURL];
    request.tag = REQTYPE_GET_RECOMMENDDETAIL;
    request.timeOutSeconds = 30;
    [request setDelegate:self];
    [request startAsynchronous];

若您的请求方式为post方式,则使用ASIFormDataRequest类来实现您的需求。

如:- (void) getFileUploadInfo:(NSString*)reqURL
                      fileSize:(int)fileSize
                        ftitle:(NSString*)ftitle
                
{
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:reqURL]];
    request.tag = REQTYPE_GET_MYSPACEFILETRANSPORTRINFO;
    request.timeOutSeconds = 30;
    [request setDelegate:self];
    [request setPostValue:[NSNumber numberWithInt:fileSize] forKey:@"fileSize"];
    [request setPostValue:ftitle forKey:@"title1"];
    [request startAsynchronous];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值