当前位置: 首页 > 知识库问答 >
问题:

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

余信然
2023-03-14

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

@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()

可选(错误域=nsurlerrordomain代码=-1017“不能解析响应”userinfo={nserrorfailingurlstringkey=http://192.168.10.229:8080/jerseydemos/rest/employees,_kcfstreamerrorcodekey=-1,nserrorfailingurlkey=http://192.168.10.229:8080/jerseydemos/rest/employees,nslocalizeddescription=不能解析响应,_kcfstreamerrordomainkey=4,nsunderlyingerror=0x145319e0{fo={_kcfstreamerrordomainkey=4,_kcfstreamerrorcodekey=-1}}})

我怎么才能让它起作用?java服务运行良好。我和邮递员查过了。

共有1个答案

喻选
2023-03-14

从iOS10开始,您应该只使用https URL。

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

 类似资料:
  • 问题内容: 早上好,我目前正在开发一个公开Web服务接口的Java Web应用程序。为了将全局对象保留在内存中,我将以下类用作Singleton: 我使用上面的类是为了使Web服务的所有线程都具有相同的HashMap实例。维护SingletonMap对象的Web服务类如下: 我拥有方法getCouponMapCreationTime()的原因是要检查Web服务的所有线程是否正在访问同一对象。以上方

  • 在 Web 服务器中 Web 应用程序的根目录是一个特定的路径。例如,一个catalog应用,可以位于 http://www.mycorp.com/catalog。以这个前缀开始的所有请求将被路由到代表 catalog 应用的 ServletContext 环境中。 servlet 容器能够制定Web应用程序自动生成的规则。例如,一个~user/映射可用于映射到一个基于/home /user/pu

  • 我和Postman一起测试,如果我向标题为,正文为。此调用的响应是一个简单的随机字符串,状态为“200 OK”。我试图用Codename One复制相同的请求,但没有成功,我得到了一个对话框错误,文本为。下面的代码有什么问题? 我还需要对服务器返回的随机字符串进行一些操作(如果成功),但我不知道如何获取该字符串。

  • 我有一个wsdl url http://www.webservicex.net/geoipservice.asmx?wsdl 因此,假设如果我想在soap web服务(用java编写)中进行更改,生成的文件中的更改将无法达到目的。 可能我的问题对你来说很基本,但我在看一个应用程序代码时遇到了这个困惑,所以请回答我的问题。

  • 这个错误的原因是什么?我如何修复它或设置我想要的代理?

  • 所以,标题很简单。我想使用一家公司的Web服务,我有. cers和. p12文件。据说,我应该在发出请求时使用. p12。我已经将. cers导入到windows中,我可以很容易地使用postman发出请求。但是当我尝试使用node.js进行请求时,我会出错。这是代码,我使用模块: 我收到以下错误: