首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法在Swift应用程序上解析服务器PHP

无法在Swift应用程序上解析服务器PHP
EN

Stack Overflow用户
提问于 2016-03-29 03:43:00
回答 1查看 299关注 0票数 2

我正试图在我的iOS应用程序上实现Signup/Login函数。为此,我编写了一个简单的服务器端php脚本,只是为了检查它是否返回一个值。以下是我的php代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php

if(isset($_POST["username"])){
$username = $_POST["username"];
$password = $_POST["password"];
if($username == "admin" && $password == "admin")
{
$details;
$details['success'] = $username;
echo json_encode($details);
}
else{
echo "invalid credential";
}
};
?>

以下是登录屏幕中的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let myUrl = NSURL(string: "http://localhost/app/index.php")  
    let request = NSMutableURLRequest(URL:myUrl!)
    request.HTTPMethod = "POST" 
    request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Accept") 
    //print("\(usernameField.text!), \(passwordField.text!), \(emailField.text!)")  
    //let params = ["user":"\(usernameField.text!)","pass":"\(passwordField.text!)"] as NSDictionary  
    let bodyData = "username=\(usernameField.text)&password=\(passwordField.text)"  
    request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding)

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: {
            data, response, error in
            do {
                let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary
                print("json is : \(json!)")
                if let parseJSON = json {
                    let firstNameValue = parseJSON["success"] as? String
                    print("Username: \(firstNameValue!)")
                }
            } catch {
                print("errorrrrr: \(error)")
            }  
            if error != nil {
                print("error=\(error!)")
                return
            }        
            // You can print out response object
            print("Response = \(response!)")
            // Print out reponse body
            let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
            print("response Data = \(responseString!)")


        })
        task.resume()

}

但是,我得到了以下错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

我的响应数据是“无效凭据”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-29 04:49:09

您的php脚本对于webservice没有完成。这不是送回一个json。你必须先完成你的网络服务。我不是个php的家伙。但我还是试图改进剧本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
if(isset($_POST["username"])){
$username = $_POST["username"];
$password = $_POST["password"];
if($username == "admin" && $password == "admin")
{
    $details;
    $details['success'] = $username;
    return json_encode($details);
}
else{
    return json_encode( array("response" => "invalid credential") );
}
};
?>

更新:在使用alamofire库之后,使用下面的代码访问webservice:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let parameters = ["username": usernameField.text! ,"password" : passwordField.text! ]

Alamofire.request(.POST, "http://localhost/app/index.php", parameters: parameters)
     .responseString { response in
         print("Response String: \(response.result.value)")
     }
     .responseJSON { response in
         print("Response JSON: \(response.result.value)")
       //Handle the json response here
      if let parseJSON = response.result.value {
                let firstNameValue = parseJSON["success"] as? String
                print("Username: \(firstNameValue!)")
            }
     }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36283310

复制
相关文章
html内嵌php代码无法解析
php, apache都安装完成,但是这样的代码,浏览器无法解析其的php代码. <html><body><h1>d</h1> <?php echo “test”; ?> </body></h
吾爱乐享
2019/12/30
3.3K0
Swift专题讲解十六——ARC在Swift中的应用
        ARC(自动引用计数)是Objective-C和Swift中用于解决内存管理问题的方案。在学习Objective-C编程时经常会学习到一个关于ARC的例子:在一个公用的图书馆中,每次进入一人就将卡插入,走的时候将自己的卡拔出拿走。图书馆系统会判定只要有卡插入,就将图书馆的灯打开,当所有卡都被取走后,将图书馆的灯关掉。这个例子对应于Objective-C中的对象声明周期管理十分贴切。每当一个对象增加一个引用时,其引用计数会加1,当一个引用被取消时,对象的引用计数减1,当引用计数减为0时,说明此对象将不再有任何引用,对象会被释放掉,让出内存。Swift也采用同样的方式进行内存管理。
珲少
2018/08/15
1.3K0
Swift专题讲解十六——ARC在Swift中的应用
CentOS6.5 Nginx无法解析php文件
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/78653635
泥豆芽儿 MT
2018/09/11
1.6K0
CentOS6.5 Nginx无法解析php文件
无法解析服务器的DNS地址
背景: 打开浏览器突然之间发现无法上网了,提示说无法解析服务器的DNS地址 原因: DNS,就是将域名转换为IP地址功能的服务器 DNS解析不了,是由于输入的地址无法指向到目标网络,而导致的无法上
运维小白
2018/03/29
49.2K0
无法解析服务器的DNS地址
php的json_decode函数无法解析json
作者:matrix 被围观: 5,526 次 发布时间:2014-09-04 分类:零零星星 | 9 条评论 »
HHTjim 部落格
2022/09/26
2K0
json_decode在php中的一些无法解析的字符串
 关于json_decode在php中的一些无法解析的字符串,包括以下几种常见类型。 一、Bug #42186 json_decode() won't work with \l 当字符串中含有\l的时候,json_decode是无法解析,测试代码: echo "***********json_decode() won't work with \l*************<br/>"; $json = '{"stringwithbreak":"line with a \lbreak!"}'; var_dum
蛋未明
2018/06/07
4K0
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装
今天上午还在用数据库,离开了一会儿要重新登陆,就不知道怎么回事 出现这个错误,打不开了。中文提示:phpMyAdmin – 错误 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。 搜索并火速使用了下面的方法来解决,真的就好了、、哈哈,遇到这个问题的朋友快来看下吧
用户1191760
2019/02/27
2.3K0
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装
今天上午还在用数据库,离开了一会儿要重新登陆,就不知道怎么回事 出现这个错误,打不开了。中文提示:phpMyAdmin – 错误 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。 搜索并火速使用了下面的方法来解决,真的就好了、、哈哈,遇到这个问题的朋友快来看下吧 1.打开我的电脑——系统安装盘(不错的话一般都是C盘)——打开WINDOWS文件夹——找到Temp目录; 2.右击打开属性,点到安全选项,如果没有你可以在窗口的上边点开 工具——文件夹选项——查看——将“使用
用户1272546
2018/06/04
2K0
使用php-js-ext在PHP内解析javascript脚本
当你在因个人兴趣爱好而开发PHP程序时,面对可以达到你的目的却长达千行以上的js脚本,你有精力去用php重写它么?想用PHP模拟用户行为么?但却遇到js泛滥的站点……一个不为人所知的php扩展项目可以满足这些需求,这个扩展的目的就是在php内解释javascript。 项目主页 http://aurore.net/projects/php-js/ php-js-ext是mozilla javascript解释器和php之间的一座桥梁,因此我们除了需要下载最后版本为0.1.2的php-js-ext,还需要下载
用户1272546
2018/06/04
2.8K0
谈谈JSONAPI在PHP中的应用
现在服务端程序员的主要工作已经不再是套模版,而是编写基于 JSON 的 API 接口。可惜大家编写接口的风格往往迥异,这就给系统集成带来了很多不必要的沟通成本,如果你有类似的困扰,那么不妨关注一下 JSONAPI,它是一个基于 JSON 构建 API 的规范标准,一个简单的 API 接口大致如下所示:
LA0WAN9
2021/12/14
8960
谈谈JSONAPI在PHP中的应用
PHP json_decode 无法解析,那就试试 Services_JSON
PHP 的 json_decode 函数不知道是有bug,还是考虑太少,常常会发生解析不出数据的情况,使用 json_last_error_msg() 函数大部分情况下可以获得下面的错误:
Denis
2023/04/15
7070
Swift Codable 记录解析路径
在我们的工作中,各种特殊情况都有可能遇到,某些特定情况下,需要我们记录模型的解析路径,例如:
韦弦zhy
2021/11/24
8310
Swift 面向对象解析(二)
 接着上面一篇说的内容: 一 继承:      苹果继承与水果,苹果是水果的子类,则苹果是一种特殊的水果;这就是继承的关系,这个我们学OC的时候相信也都理解了,就不再描述定义了,下面的就叫继承: class ZXMessageCell: UITableViewCell { // 自定义的cell继承与UITableviewCell }      继承了父类,你也就能使用父类的属性方法,这些我们学OC的时候也都清楚。看下面几点,      1:重写父类的方法      2:重写父类的属
Mr.RisingSun
2018/01/15
9790
Swift 面向对象解析(一)
面向对象总体概括: Swift 不仅能够面向过程编程,也能够面向对象编程(OOP)。面向对象其实就是“以对象为核心”,把我们的客观世界想着是由一个个对象组成的,面向对象编程则为对象提供了属性和方法,属性就是为了描述对象的一些状态,方法则是告诉你对象该做什么。面向对象和核心就是“类”和“对象”!在我刚接触编程的时候,其实我也很容易把这东西混淆了,你要也是刚接触编程,能帮到你的,我觉得反而是时间。你要实在是有点难理解,就别去钻牛角尖,也许明天因为某个东西你就会恍然大悟。超喜欢那种感觉!         面
Mr.RisingSun
2018/01/15
1.8K0
”在禁用UAC时,无法激活此应用“问题
重装完系统后,打开图片、PDF书籍或是其他一些东西的时候,总是会出现“在禁用UAC时,无法激活此应用”的问题。
全栈程序员站长
2022/08/09
6.4K0
”在禁用UAC时,无法激活此应用“问题
在CentOS上搭建PHP服务器环境
chkconfig --levels 235 httpd on 配置完毕,启动apache: /etc/init.d/httpd start 此时输入服务器的IP地址,应该看到apache的服务页面,端口不用输,apache默认就是使用80端口
似水的流年
2019/12/11
2.3K0
在CentOS上搭建PHP服务器环境
 您也可以使用一键自动部署环境的工具,请参见网友开发的这个工具 http://www.centos.bz/2013/08/ezhttp-tutorial/ 安装apache: yum install httpd httpd-devel  启动apache: /etc/init.d/httpd start 此时输入服务器的IP地址,应该看到apache的服务页面,端口不用输,apache默认就是使用80端口 安装mysql: yum install mysql mysql-server 启动mysql:
liulun
2018/01/12
3K0
在CentOS上搭建PHP服务器环境
安装apache: yum install httpd httpd-devel
似水的流年
2018/01/14
2.6K0
点击加载更多

相似问题

swift无法解析php数据

10

无法在Swift中解析JSON

126

无法在swift中解析字典

118

我无法在Microsoft应用程序上运行.php页面

22

无法在PHP facebook应用程序上读取$_SESSION变量

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文