Qt HTTP POST请求 (Json格式和Form格式) 访问服务器

form格式访问服务器

QByteArray postArray;
postArray.append("grant_type=authorization_code");
postArray.append("&client_id=32u2w95f200D4d27");
postArray.append("&client_secret=37vH35Eg028P2HZz");
postArray.append("&redirect_uri=http://www.163.com");
postArray.append("&code=128a55c1249ebf3ef9d154b72a5386d4");

QNetworkRequest request(QUrl("http://kk.bigk2.com:8080/KOAuthDemeter/accessToken"));
request.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
request.setHeader(QNetworkRequest::ContentLengthHeader,postArray.size());
manager->post(request,postArray);

json格式访问服务器

 QUrl url("http://kk.bigk2.com:8080/KOAuthDemeter/User/getKSceneList");
QByteArray array("{\"userid\":\"[email protected]\"}");
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));
request.setRawHeader("Authorization","Bearer 49152bfddae0c5b5d492d3d9871f8c11");//服务器要求的数据头部
manager->post(request,array);

HTTP访问服务器

使用HTTP访问服务器,需要向服务器发送服务器可以接受的数据包格式。 
开始:一个以太网数据包的格式为:标头(Head)和数据(Data)。标头中包含发送者,接受者,以及数据类型等内容。发送者和接受者在一些高级类中已经自动封装。我们要做的就是设置数据类型。通过设置正确的数据类型,然后将数据发送出去.简单的说:我需要发送一个数据包给服务器。首先确定服务器接受数据的类型为“application/x-www-form-urlencoded”,因此我设置头部的数据类型为“application/x-www-form-urlencoded”,然后在组装数据。结果一个数据包就完成了。头部+数据 = 一个完整的数据包。接下来简单的介绍一些HTTP概念

  1. 资源:web服务器是web资源(Web resource)的宿主。Web资源是Web内容的源头
  2. MIME类型:Web服务器为所有HTTP对象数据附加一个MIME( Multipurpose Internet Mail Extension 多用途以太网邮件扩展)类型,上面的“application/x-www-form-urlencoded”就是一个MIME类型。最初设计使用为了解决在不同的电子邮件系统之间搬移报文存在的问题。MIME类型是一种文件标记,表示一种主要的对象类型和一个特定的子类型,中间有一条斜杠来分隔。例如:上面我们用到的“application/x-www-form-urlencoded”
  3. URI:服务器资源名称为统一资源标示符(Uniform Resource Identifier,URI)。URI用两种形式,分别为URL和URN。
  4. URL:统一资源定位符(URL)是资源标示符中最常见的形式。URL藐视了一台特定服务器上某个资源的特定位置。大部分URL遵循一种标准的格式,这种格式包含三个部分: 
    • URL的第一部分称为方案(scheme),说明了访问资源所使用的协议类型。这部分通常使用HTTP(Hypertext Transfer Protocol )协议(“http:/”),另外还有HTTPS(Hypertext Transfer Protocol Secure)协议。
    • 第二部分给出了服务器的因特网地址(例如, https://zh.wikipedia.org
    • 其余部分给定了Web服务器上的某个资源(例如:/wiki/Cookie)
  5. URN:URI的第二种形式就是统一资源名(URN)。使用较少,不做讨论。
  6. 事务:一条HTTP事务由一条请求服务器命令和服务器响应结果而组成。这种通信是通过HTTP报文(HTTP message)的格式化数据块进行的。
  7. 状态码:每个HTTP响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端的请求结果。
  8. 报文:HTTP报文时由一行一行的简单字符串组成。HTTP报文都是纯文本,不是二进制,所以人们可以很方便的对它进行读写。从客户端到服务器的称为请求报文,从服务器到客户端的为响应报文。HTTP报文包括三部分:HTTP报文详解 
    • 请求行
    • 请求头
    • 主体
  9. 代理:代理位于客户端和服务器之间,接受所有客户端的HTTP请求,并将这些请求转发给服务器。
  10. 更多的文章,在维基百科中查询对应关键字。

猜你喜欢

转载自blog.csdn.net/clinuxf/article/details/79883760