2016-01-10 5 views
8

कंसोल करने के लिए http अनुरोध मुद्रित करने के लिए कैसे वास्तविक अनुरोध करने से पहले पूरे http (अनुरोधों) अनुरोध को मुद्रित करना संभव है?कंसोल

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 
}) 

इस हेक्स में json प्रिंट पहले और उसके बाद:

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

जो मुझे बहुत मदद नहीं करता है

यह मेरा कोड है। मैं बस अपना पूरा अनुरोध मुद्रित करना चाहता हूं जैसे कि आप इसे फ़ायरफ़ॉक्स पर फायरबग में देखेंगे।

--edit--

स्पष्ट करने के लिए, मैं अपने json प्रिंट करने का प्रयास नहीं कर रहा हूँ। एसओ पर पहले से ही इसके बारे में पर्याप्त प्रश्न हैं। मैं अपना पूरा अनुरोध कुछ इस तरह बाहर मुद्रित करना चाहते हैं:

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 

या इस: completionHandler अंदर

Firebug request screenshot

+0

आप JSON टेक्स्ट आप डेटा से एक स्ट्रिंग बनाने की जरूरत को देखने के लिए चाहते हैं, तो सभी – Wain

+0

@Wain है, lol नहीं, मैं अपने पूरे देखना चाहते हैं http अनुरोध 'प्राप्त/API/v2/HTTP/1.1 HTTP हेडर: मेजबान: www.ritzie.nl स्वीकार करें: */* कुकी: PHPSESSID = vd61qutdll216hbs3a677fgsq4 उपयोगकर्ता-एजेंट: केएम% 20registratie% 20tabbed% इस तरह 20NL/1 CFNetwork/758.2.8 डार्विन/15.2.0 स्वीकार करें-भाषा: एन-हमें Accept-Encoding: gzip, कनेक्शन हवा निकालना: रख-alive' – Fr4nc3sc0NL

+0

तो तुम हेडर खुद – Wain

उत्तर

0

प्रिंट यह:

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

यह तो काम नहीं किया है, तो निम्नलिखित का उपयोग करें:

print(NSString(data: data, encoding: NSUTF8StringEncoding)) 
मेरे लिए
+0

आप प्रतिक्रिया शरीर को प्रिंट कर रहे हैं, मुझे पूरा अनुरोध चाहिए – Fr4nc3sc0NL

1

यह एक काम करता है:

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

प्रतिक्रिया ऑब्जेक्ट पर कोई अनुरोध संपत्ति नहीं है। – Nate