【发布时间】:2016-02-26 15:21:02
【问题描述】:
我正在尝试使用 swift 向 PHP 服务器发送一个 http 请求。我设法发送数据并读取服务器的响应。我只希望我的 php 服务器根据 json 请求中存在的请求类型执行不同的操作
这是我发送请求的方法:
func sendHttpRequests(data : Dictionary<String, AnyObject>) //-> NSDictionary
{
let url = NSURL ( string : "http://aaa.bbb.ccc.ddd")!
let request:NSMutableURLRequest = NSMutableURLRequest(URL : url)
let payload1 = "\"r\":\"login\""
request.HTTPMethod = "POST"
request.HTTPBody = payload1.dataUsingEncoding(NSUTF8StringEncoding);
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue())
{
(response, data, error) in
if let httpResponse = response as? NSHTTPURLResponse {
let responseCode = httpResponse.statusCode
print("Request Status \(responseCode)")
}
do
{
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)
print("Json received \(json)")
if let currItem = json["myKey"] as? String
{
print(currItem)
}
}
catch
{
print("error: \(error)")
}
}
}
当我用这个 php 脚本返回一个响应时,我得到了成功的响应:
<?php
$arr = array("myKey" => "myValue");
echo json_encode($arr);
?>
当我尝试这样的事情时:
<?php
$postVar = $_POST['r'];
if (!empty($postVar))
{
$arr = array("status" => "it's ok");
echo json_encode($arr);
}
else
{
$arr = array("status" => "something wrong");
echo json_encode($arr);
}
?>
我收到此错误:
Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}
【问题讨论】: