• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

java - swift中的Web服务请求对应java代码

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:07:28 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

下面是我的 java 代码,它是示例 web 服务的一部分:

@Override
    public void filter(ContainerRequestContext requestContext)
    {
        Method method = resourceInfo.getResourceMethod();
        //Access allowed for all
        if( ! method.isAnnotationPresent(PermitAll.class))
        {
            //Access denied for all
            if(method.isAnnotationPresent(DenyAll.class))
            {
                requestContext.abortWith(ACCESS_FORBIDDEN);
                return;
            }

            //Get request headers
            final MultivaluedMap<String, String> headers = requestContext.getHeaders();

            //Fetch authorization header
            final List<String> authorization = headers.get(AUTHORIZATION_PROPERTY);

            //If no authorization information present; block access
            if(authorization == null || authorization.isEmpty())
            {
                requestContext.abortWith(ACCESS_DENIED);
                return;
            }

            //Get encoded username and password
            final String encodedUserPassword = authorization.get(0).replaceFirst(AUTHENTICATION_SCHEME + " ", "");

            //Decode username and password
            String usernameAndPassword = new String(Base64.decode(encodedUserPassword.getBytes()));;

            //Split username and password tokens
            final StringTokenizer tokenizer = new StringTokenizer(usernameAndPassword, ":");
            final String username = tokenizer.nextToken();
            final String password = tokenizer.nextToken();

            //Verifying Username and password
            System.out.println(username);
            System.out.println(password);

          //Is user valid?
            if( ! isUserAllowed(username, password))
            {
                requestContext.abortWith(ACCESS_DENIED);
                return;
            }
        }
    }

我得到响应的快速代码是:

let headers = [
        "authorization": "Basic YWRtaW46YWRtaW4=",
        "cache-control": "no-cache"
    ]
    let parameters = ["username" : "admin","password" : "admin"]


    let request = NSMutableURLRequest(URL: NSURL(string: "http://192.168.10.229:8080/JerseyDemos/rest/employees")!,
                                      cachePolicy: .UseProtocolCachePolicy,
                                      timeoutInterval: 60.0)
    request.HTTPMethod = "GET"
    //request.allHTTPHeaderFields = headers
    do {
        request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(parameters, options: [])
    }
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Accept")
    let session = NSURLSession.sharedSession()
    let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
        if (error != nil) {
            print(error)
        } else {
            let httpResponse = response as? NSHTTPURLResponse
            print(httpResponse)
        }
    })

    dataTask.resume()

但这不是很好。我收到以下错误:

Optional(Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" UserInfo={NSErrorFailingURLStringKey=http://192.168.10.229:8080/JerseyDemos/rest/employees, _kCFStreamErrorCodeKey=-1, NSErrorFailingURLKey=http://192.168.10.229:8080/JerseyDemos/rest/employees, NSLocalizedDescription=cannot parse response, _kCFStreamErrorDomainKey=4, NSUnderlyingError=0x145319e0 {Error Domain=kCFErrorDomainCFNetwork Code=-1017 "(null)" UserInfo={_kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-1}}})

我怎样才能使它工作? java服务工作正常。我用 Postman 查了一下。



Best Answer-推荐答案


从 ios 10 开始,您应该只使用 https 网址。

您需要将 ssl 证书添加到您的 java 服务器。

关于java - swift中的Web服务请求对应java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40765060/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap