美文网首页
Http请求报文和响应报文(Get和Post)

Http请求报文和响应报文(Get和Post)

作者: 相识菩提 | 来源:发表于2019-05-21 20:54 被阅读0次

HTTP请求报文由请求行,请求头,空格和请求数据构成。

1.请求行由请求方法 空格 请求url 空格 版本 组成

2.请求头由关键字/值组成

  常用的由user-Agent:浏览器类型

                accept:客户端能识别的类型列表

                host:主机名

3.空格:区分不同的部分

4.只用post才有:最常对应的请求头尾content-length,content-type

5.get请求实例

//请求首行

GET /hello/index.jsp HTTP/1.1

//请求头信息,因为GET请求没有正文

Host: localhost

User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-cn,zh;q=0.5

Accept-Encoding: gzip, deflate

Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7

Connection: keep-alive

Cookie: JSESSIONID=369766FDF6220F7803433C0B2DE36D98

//空行

//因为GET没有正文,所以下面为空

6.post请求实例

// 请求首行

POST /hello/index.jsp HTTP/1.1

//请求头信息

Host: localhost

User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-cn,zh;q=0.5

Accept-Encoding: gzip, deflate

Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7

Connection: keep-alive

Referer: http://localhost/hello/index.jsp

Cookie: JSESSIONID=369766FDF6220F7803433C0B2DE36D98

Content-Type: application/x-www-form-urlencoded

Content-Length: 14

// 这里是空行

//POST有请求正文

username=hello

 7.URLConnection实现文件上传(注意请求头)

好了先看看这个图,上传文件和普通的POST请求不一样,它多了一些这个,然而这里就有是需要我们拼接的内容,分两部分上面的Content-Type是在我们的请求头里面的下面的那些写红色字的就是我们所请求 需要拼接的至于换多少行,我也一一的拼接出来了,你们拼接的话可以跟着下面的图一步一步拼接.

//1、确定URL

    NSURL *url = [NSURL URLWithString:@"http://192.168.1.0:8080/upload"];

  //2、确定请求

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    /******************************************************************/

    //                          设置请求头

    [request setValue:@"multipart/form-data; boundary=----WebKitFormBoundaryUFNaH6losNxu4xDq" forHTTPHeaderField:@"Content-Type"];

    /******************************************************************/

    //                          设置请求体

    // 设置请求体

    // 给请求体加入固定格式数据  这里也是使用的也是可变的,因为多嘛

    NSMutableData *data = [NSMutableData data];

    /******************************************************************/

    //                      开始标记

    [data appendData:[@"------WebKitFormBoundaryUFNaH6losNxu4xDq" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"Content-Disposition: form-data; name=\"file\"; filename=\"Liiii.png\"" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"Content-Type: image/png" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    /******************************************************************/

    //                      上传文件参数

    //图片数据  并且转换为Data

    UIImage *image = [UIImage imageNamed:@"Liiii"];

    NSData *imagedata = UIImagePNGRepresentation(image);

    [data appendData:imagedata];

    [data appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    /******************************************************************/

    //                      非文件参数

    [data appendData:[@"------WebKitFormBoundaryUFNaH6losNxu4xDq" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"Content-Disposition: form-data; name=\"username\"" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"LitterL" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    /******************************************************************/

    //                      添加结束标记

    [data appendData:[@"------WebKitFormBoundaryUFNaH6losNxu4xDq--" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    /******************************************************************/

    //请求方式

    request.HTTPMethod = @"POST";

    //请求体

    request.HTTPBody = data;

    //3、发送请求

    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {

        NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);

    }];

相关文章

  • iOS - HTTP

    手动目录HTTPHTTP是什么请求报文响应报文HTTP请求方式GET & POST 区别GET 相对 POST 的...

  • HTTP请求响应报文&&相关状态码&&a

    HTTP请求响应报文&&相关状态码&&GET_POST请求方法 总结HTTP请求报文: 一个HTTP请求报文由四个...

  • HTTP协议报文及Chrome Network常用功能

    HTTP协议报文 Http协议报文分为【Http请求报文】和【Http响应报文】 HTTP请求报文 Http请求报...

  • HTTP报文

    报文 请求报文 响应报文 备注: HTTP常用方法 GET方法与POST方法的区别 状态码分类状态码分类.png ...

  • Http post/get请求参数接收

    1、 Http请求报文 Http请求报文示例图如下: ①是请求方法,GET和POST是最常见的HTTP方法,除此以...

  • 3. HTTP报文内的HTTP信息

    HTTP报文 请求报文 | 响应报文分为报文头部和报文主体 请求报文和响应报文的结构 报文头部内容如下: 请求行 ...

  • Http请求报文和响应报文(Get和Post)

    HTTP请求报文由请求行,请求头,空格和请求数据构成。 1.请求行由请求方法 空格 请求url 空格 版本组成 2...

  • Android 基础之网络

    HTTP Http报文 http报文可以分为请求报文和响应报文。请求报文格式: 响应报文格式: 解释下各个标签: ...

  • iOS开发需掌握的网络基础

    HTTP 超文本传输协议请求报文格式 响应报文格式 常用的请求方式 POST GET HEAD PUT DELET...

  • HTTP请求头和响应头详解

    HTTP 请求报文由3部分组成(请求行+请求头+请求体) HTTP请求报文 1是请求方法,GET和POST是最常见...

网友评论

      本文标题:Http请求报文和响应报文(Get和Post)

      本文链接:https://www.haomeiwen.com/subject/uwuszqtx.html