Это рабочий код, я посылаю свой словарь в JSON отформатированной строки на сервер, и на сервере, я разобрать запрос и построить еще один объект JSON, который содержит то же значение, как запрос, и отправить их обратно в приложение. В приложении, я анализирую ответ и распечатать результаты:
let session = NSURLSession.sharedSession()
let url = "http://localhost:8080/yourServerGoesHere/putMethodTest"
let request = NSMutableURLRequest(URL: NSURL(string: url)!)
request.HTTPMethod = "PUT"
let params:[String: AnyObject] = ["deviceId" : "device_1","mobileDeviceId" : "abcd","deviceType":"ios"]
do{
request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions())
let task = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
if let response = response {
let nsHTTPResponse = response as! NSHTTPURLResponse
let statusCode = nsHTTPResponse.statusCode
print ("status code = \(statusCode)")
}
if let error = error {
print ("\(error)")
}
if let data = data {
do{
let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions())
let deviceId = jsonData["deviceId"] as! String
let mobileDeviceId = jsonData["mobileDeviceId"] as! String
let deviceType = jsonData["deviceType"] as! String
print (" deviceId= \(deviceId), mobileDeviceId= \(mobileDeviceId), deviceType= \(deviceType)")
}catch _ {
print ("the response is not well JSON formatted")
}
}
})
task.resume()
}catch _ {
print ("Oops something happened buddy")
}
Если вы хотите попробовать, это Java-код веб-службы:
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/putMethodTest")
@PUT
@Consumes(MediaType.TEXT_PLAIN)
public Response putMethodTest(String requestString) {
JSONObject requestJSON = new JSONObject(requestString);
String deviceId = requestJSON.getString("deviceId");
String mobileDeviceId = requestJSON.getString("mobileDeviceId");
String deviceType = requestJSON.getString("deviceType");
JSONObject response = new JSONObject();
response.put("deviceId", deviceId);
response.put("mobileDeviceId", mobileDeviceId);
response.put("deviceType", deviceType);
return Response.ok().entity(response.toString()).build();
}
Определение «не работает» – Wain
Описание ошибки разобранные ошибка: «Ошибка домена = NSURLErrorDomain Code = -1005» Сетевое соединение было потеряно ». UserInfo = 0x7a7a8cc0 {NSErrorFailingURLStringKey = http: // smapleurl, _kCFStreamErrorCodeKey = -4, NSErrorFailingURLKey = http: // smapleurl, NSLocalizedDescription = Сетевое соединение было потеряно., _kCFStreamErrorDomainKey = 4, NSUnderlyingError = 0x7a6f4520 «Операция не может быть завершена. (kCFErrorDomainCFNetwork error -1005.) "} ' Эта ошибка возникает –
Это может быть опечатка, но в вашем' let url = NSURL (строка: «http: // sampleurl») 'your last' '' не является правильным '" '. – Chajmz