Ceci est un code de travail, j'envoyer votre dictionnaire comme une chaîne au format JSON au serveur, et le serveur, je Parse la demande et construire un autre objet JSON qui contient les mêmes valeurs comme la demande, et les renvoyer à l'application. Dans l'application, je parse la réponse et imprimer les résultats:
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")
}
Si vous voulez essayer, cela est le code de service Web 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();
}
Définir 'ne fonctionne pas' – Wain
Description de l'erreur Analysée erreur: 'Error Domain = NSURLErrorDomain Code = -1005 "La connexion réseau a été perdue." UserInfo = 0x7a7a8cc0 {NSErrorFailingURLStringKey = http: // smapleurl, _kCFStreamErrorCodeKey = -4, NSErrorFailingURLKey = http: // smapleurl, NSLocalizedDescription = La connexion réseau a été perdue., _kCFStreamErrorDomainKey = 4, NSUnderlyingError = 0x7a6f4520 "L'opération n'a pas pu aboutir. (kCFErrorDomainCFNetwork error -1005.) "} ' Cette erreur se produit –
Il peut s'agir d'une faute de frappe mais dans votre' let url = NSURL (string: "http: // sampleurl") 'votre dernier' '' n'est pas le bon '" '. – Chajmz