如何向 GET 请求添加标头字段和参数?

Posted

技术标签:

【中文标题】如何向 GET 请求添加标头字段和参数?【英文标题】:How to add header fields and parameter to a GET request? 【发布时间】:2015-09-21 17:34:24 【问题描述】:

我想从服务器发回一个 JSON 响应的 GET 请求。标题中应添加三个参数,其中一个参数作为查询字符串。现在我正在发送这样的请求 -

  NSString *strUrl = [NSString stringWithFormat:@"https://www.ngyripq.com/query?number=123456789"];
  NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:strUrl] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60];

  [request setHTTPMethod:@"GET"];
  [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
  [request addValue:@"my parameter 1" forHTTPHeaderField:@"parameter 1"];
  [request addValue:@"my parameter 2" forHTTPHeaderField:@"parameter 2"];

  DLog(@"%@", [request allHTTPHeaderFields])
  NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];

我在 didReceiveResponse 中收到错误响应,状态码为:404。这里有什么我遗漏的东西吗?提前感谢您的帮助。

   <NSHTTPURLResponse: 0x7fc28e7cddc0>  URL: <NSHTTPURLResponse: 0x7fc28e7cddc0>  URL: https://www.ngyripq.com/query?number=123456789   status code: 404, headers 
    Connection = close;
   "Content-Encoding" = gzip;
   "Content-Length" = 205;
   "Content-Type" = "text/html; charset=UTF-8";
   Date = "Mon, 21 Sep 2015 17:05:27 GMT";
   Server = "Apache/2.2.3 (Red Hat)";
   Vary = "Accept-Encoding,User-Agent";
  "X-Powered-By" = "Servlet/2.5 JSP/2.1";

【问题讨论】:

【参考方案1】:

HTTP 错误 404 表示如果开发人员没有因其他原因引发此错误,则未找到页面。

首先要做的是检查您的网址是否正常。然后尝试使用 POSTMAN (https://www.getpostman.com) 发出请求,看看它是否正常工作。

然后在这个 URL 中创建一个请求 bin:http://requestb.in

并将你的请求指向它,然后你就可以看到你的 headers 是否正常。

【讨论】:

以上是关于如何向 GET 请求添加标头字段和参数?的主要内容,如果未能解决你的问题,请参考以下文章

AngularJs - 向请求标头添加自定义参数

如何将日期标头添加到 WebRequest

如何正确地将身份验证令牌放在 GET 请求的标头中

如何在Python和Java中访问Google Cloud Endpoints请求标头

如何将 Django 的 CSRF 令牌添加到 jQuery POST 请求的标头?

如何向 VB.NET 2008 SOAP 请求添加标头?