2016-01-10 14 views
8

Có thể in toàn bộ (các) yêu cầu http ngay trước khi thực hiện yêu cầu thực tế không?cách in yêu cầu http đến bàn điều khiển

Đây là mã của tôi:

let postsEndpoint: String = "https://www.example.com/api/" 
guard let postsURL = NSURL(string: postsEndpoint) else { 
    throw APICallError.other("cannot create URL") 
} 
let postsURLRequest = NSMutableURLRequest(URL: postsURL) 
postsURLRequest.HTTPMethod = "POST" 
print(UTF8EncodedJSON) 
postsURLRequest.HTTPBody = UTF8EncodedJSON 
print(postsURLRequest) 

let config = NSURLSessionConfiguration.defaultSessionConfiguration() 
let session = NSURLSession(configuration: config) 

let task = session.dataTaskWithRequest(postsURLRequest, completionHandler: { 
    (data, response, error) in 
    //handle response 
}) 

này in các json trong hex đầu tiên và sau đó:

<NSMutableURLRequest: 0x7fdae8d1dd30> { URL: https://www.ritzie.nl/api/v2 }

mà không giúp tôi nhiều. Tôi chỉ muốn có toàn bộ yêu cầu của tôi in như bạn sẽ thấy nó trong firebug trên firefox chẳng hạn.

--edit--

Để làm rõ, tôi không cố gắng để in json tôi. Có đủ câu hỏi về điều đó trên SO rồi. Tôi muốn yêu cầu đầy đủ của tôi in ra một cái gì đó như thế này:

POST /api/v2/ HTTP/1.1 

HTTP headers: 
Host: www.example.ocm 
Origin: http://www.example.com 
Connection: keep-alive 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/\*;q=0.8 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9 
Referer: http://www.ritzie.nl/api/test.php 
Accept-Language: en-us 
Accept-Encoding: gzip, deflate 

request body: 
data=%7B%22action%22%3A+%22vehicleRecords%22%2C%0D%0A%22token%22%3A+%22token_04e01fdc78205f0f6542bd523519e12fd3329ba9%22%2C%0D%0A%22vehicle%22%3A+%22vehicle_e5b79b2e%22%7D 

hay này:

Firebug request screenshot

+0

Nếu bạn muốn xem nội dung JSON bạn cần để tạo ra một chuỗi từ các dữ liệu là tất cả – Wain

+0

@Wain, lol không, tôi muốn nhìn thấy toàn bộ của tôi yêu cầu http. Như thế này: 'GET/api/v2/HTTP/1.1 HTTP headers: Host: www.ritzie.nl Chấp nhận: */* Cookie: PHPSESSID = vd61qutdll216hbs3a677fgsq4 User-Agent: KM% 20registratie% 20tabbed% 20NL/1 CFNetwork/758.2.8 Darwin/15.2.0 Accept-Language: en-us Accept-Encoding: gzip, deflate Kết nối: keep-alive' – Fr4nc3sc0NL

+0

Vì vậy, bạn cần tự in tiêu đề – Wain

Trả lời

0

In nó bên trong completionHandler:

let task = session.dataTaskWithRequest(postsURLRequest, completionHandler: { 
    (data, response, error) in 
    //handle response 
    print(NSString(data: data.HTTPBody!, encoding:NSUTF8StringEncoding)!) 
}) 

nếu nó không làm việc sau đó sử dụng các mục sau:

print(NSString(data: data, encoding: NSUTF8StringEncoding)) 
+0

bạn đang in nội dung phản hồi, tôi muốn toàn bộ yêu cầu – Fr4nc3sc0NL

1

một này làm việc cho tôi:

let task = session.dataTaskWithRequest(postsURLRequest, completionHandler: { 
     (data, response, error) in 
     if let _data = data 
     { 
      do { 
       var jsonResult: NSDictionary 
       try jsonResult = NSJSONSerialization.JSONObjectWithData(_data, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary 
       print("AsSynchronous\(jsonResult)") 
      } 
      catch { 
       // handle error 
      } 
     } 
     else 
     { 
      print("Error: no data for request \(urlPath)") 
     } 
    }) 
-1
let task = session.dataTaskWithRequest(postsURLRequest, completionHandler: { 
    (data, response, error) in 
    //handle response 
    print(NSString(data: response.request, encoding:NSUTF8StringEncoding)!) 
}) 
+0

Không có thuộc tính yêu cầu nào trên đối tượng phản hồi. – Nate

Các vấn đề liên quan