标签: client

使用已知但无法访问的wsdl创建Web服务客户端

我们通过电子邮件与我们合作的公司提供了wsdl和xsd架构.我们正在连接的Web服务是通过IPsec隧道访问的.在已发布的WSDL中有本地引用(在它们的末尾),这意味着我们不能使用它.

第一个问题:这是一个常见的设置吗?我认为拥有WSDL不仅要定义合同,还要将服务公开给消费者.

我可以使用wsimport,wsconsume等轻松生成提供的WSDL的客户端/服务器代码.我知道当我生成的客户端调用我生成的服务时,它会生成我需要的正确消息.

第二个问题:有没有简单的方法将其路由到不同的肥皂地址?

我只是希望能够做到这样的事情:

SalesTaxService svc = new SalesTaxService();
SalesTax tax = svc.getSalesTaxPort()
tax.getRate("NY");
Run Code Online (Sandbox Code Playgroud)

但是不要使用WSDL中定义的soap地址.我想避免为每种方法编写一堆调度客户端.

我错过了什么吗?

*回应skaffman:这是生成的.它违反了wsdlLocation的名字耸耸肩

   @WebServiceClient(name = "SomeService")
   public class SomeService_Service extends Service {

    public SomeService_Service(URL wsdlLocation, QName serviceName) {
        super(wsdlLocation, serviceName);            
    }

    public SomeService_Service(URL wsdlLocation) {
        super(wsdlLocation, new QName("urn:some_service", "SomeService"));   
    }
  }
Run Code Online (Sandbox Code Playgroud)

java jboss client wsdl web-services

7
推荐指数
2
解决办法
1万
查看次数

使用python发送http标头

我已经设置了一个小脚本,应该用html为客户端提供支持.

import socket

sock = socket.socket()
sock.bind(('', 8080))
sock.listen(5)
client, adress = sock.accept()


print "Incoming:", adress
print client.recv(1024)
print

client.send("Content-Type: text/html\n\n")
client.send('<html><body></body></html>')

print "Answering ..."
print "Finished."

import os
os.system("pause")
Run Code Online (Sandbox Code Playgroud)

但它在浏览器中显示为纯文本.你能说出我需要做什么吗?我只是在谷歌找不到帮助我的东西..

谢谢.

html python sockets client

7
推荐指数
1
解决办法
2万
查看次数

如何允许与Netty更多的并发客户端连接?

首先,感谢伟大图书馆的所有Netty贡献者.我已经愉快地使用了几个星期.

最近,我开始加载测试我的系统,但现在我遇到了Netty的一些可扩展性问题.我试图尽可能多地同时使用Netty客户端连接到Netty服务器.对于少量客户端(<50),系统工作正常.但是,对于大量客户端(> 100),我发现客户端总是提示"ClosedChannelException":

java.nio.channels.ClosedChannelException在org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink $ 1.operationComplete(NioClientSocketPipelineSink.java:157)在org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)在在org.jboss.netty.channel.AbstractChannel $ ChannelCloseFuture org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:367)在org.jboss.netty.channel.DefaultChannelFuture.setSuccess(DefaultChannelFuture.java:316) .setClosed(AbstractChannel.java:351)在org.jboss.netty.channel.AbstractChannel.setClosed(AbstractChannel.java:188)在org.jboss.netty.channel.socket.nio.NioSocketChannel.setClosed(NioSocketChannel.java:146 )在org.jboss.netty.channel.socket.nio.NioWorker.close(NioWorker.java:592)在org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink $ Boss.close(NioClientSocketPipelineSink.java:415)在org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink $ Boss.processConnectTimeout(NioCl ientSocketPipelineSink.java:379)在org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink $ Boss.run(NioClientSocketPipelineSink.java:299)在org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)在在java.util.concurrent.ThreadPoolExecutor中的$工人org.jboss.netty.util.internal.DeadLockProofWorker $ 1.run(DeadLockProofWorker.java:44)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110).在java.lang.Thread.run上运行(ThreadPoolExecutor.java:603)(Thread.java:722)

我想知道如何让Netty支持更多的同步客户端连接,例如10K.我使用的是最新版本的Netty.以下是测试场景:

每个客户端向服务器发送一个四字母字符串,服务器处理程序在收到字符串后不执行任何操作.每个服务器和客户端都运行在具有八核和16GB内存的高性能计算机上.这两台机器通过技嘉网络连接.

你有什么提示吗?

connection concurrency client netty

7
推荐指数
1
解决办法
8959
查看次数

Cisco VPN 客户端自动登录

我需要自动化 Cisco VPN 客户端版本 5.0.07.0440 的登录过程。我尝试过使用这样的命令行,但有问题:

vpnclient.exe connect MyVPNConnection user username pwd password
Run Code Online (Sandbox Code Playgroud)

这将启动连接,但随后会显示“用户身份验证”对话框,询问用户名、密码和域。用户名和密码已填写,不需要域。

要继续,我必须按“确定”按钮。

有没有办法不显示对话框并自动登录VPN?

authentication vpn client cisco

7
推荐指数
2
解决办法
2万
查看次数

使用 socket.io-client 发送 cookie

我正在尝试连接到 websocket。我想从实际的网站登录中添加 cookie,因此服务器(不是我的)知道我是谁(事件是特定于帐户的)。

var opts = {
   extraHeaders: {
        'Cookie': "_ga=GA1.2.17432343994.1475611967; _gat=1; __cfduid=dc232334gwdsd23434542342342342475611928"
    },
}

function socket() {
            var socket = io(websiteURL, opts);
            var patch = require('socketio-wildcard')(io.Manager); patch(socket);

            socket.on('connect', function () {
                console.log(" > [Connected]");

            });
            socket.on('*', function (data) {                
                console.log(" >>> " + data);
            });

            socket.on('disconnect', function () {
                console.log(" > [Disconnected]");
            });

}
Run Code Online (Sandbox Code Playgroud)

连接本身工作正常,因为我从网站(不是每个帐户的)接收公共事件。

我试图使用节点检查器找到问题。

这是正在完成的第一个请求。似乎请求标头是空的,并且那里缺少 cookie。

节点检查器: 在此处输入图片说明

网站在 chrome 中的正常使用: http://i.imgur.com/96h0PEV.jpg

(是的,我在节点中发送的 cookie 较少,只是为了查看它们是否在请求 cookie 中弹出)

难道我做错了什么?我将如何以正确的方式添加 cookie?

client websocket node.js socket.io

7
推荐指数
1
解决办法
6975
查看次数

Elasticsearch java RestHighLevelClient"无法解析响应主体"IllegalArgumentException:必需[index]

使用java创建索引时我处理问题RestHighLevelClientElasticsearch和我CreateIndexResponse对象在结果无效.

我实际上能够创建索引,我可以在稍后查询它,但是当我创建索引时,我得到了这个异常.这是我的代码:

`CreateIndexRequest request = new CreateIndexRequest("myindex"); 
CreateIndexResponse createIndexResponse = client.indices().create(request);`
Run Code Online (Sandbox Code Playgroud)

Elasticsearch返回成功的消息:

`HTTP 200 Success

{
  "acknowledged": true,
  "shards_acknowledged": true
}`
Run Code Online (Sandbox Code Playgroud)

我实际上可以稍后通过GET调用来检索索引,但是当RestHighLevelClient尝试解析响应时,使用以下内部调用:

//Type of the response converter: CheckedFunction<Req, Request, IOException>    requestConverter
responseConverter.apply(response);
Run Code Online (Sandbox Code Playgroud)

发生以下异常:

java.io.IOException: Unable to parse response body for 
Response{requestLine=PUT /myindex?master_timeout=30s&timeout=30s HTTP/1.1, 
host=http://localhost:9200, response=HTTP/1.1 200 OK}
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:507)
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:474)
at org.elasticsearch.client.IndicesClient.create(IndicesClient.java:77)
at hello.client.HelloClient.createSynch(HelloClient.java:84)
at hello.main.Main.main(Main.java:25)
Caused by: java.lang.IllegalArgumentException: Required [index]
Run Code Online (Sandbox Code Playgroud)

所以基本上这就是说下面的响应无法解析,但对我来说它看起来很容易解析:

Response{requestLine=PUT /myindex?master_timeout=30s&timeout=30s HTTP/1.1, 
host=http://localhost:9200, response=HTTP/1.1 200 OK}
Run Code Online (Sandbox Code Playgroud)

为什么它告诉我索引丢失了?是不是我错误地使用了Java客户端?这是版本:

<dependencies> …
Run Code Online (Sandbox Code Playgroud)

indexing client parsing elasticsearch

7
推荐指数
1
解决办法
2117
查看次数

如何修复 websocket-client Python 模块中的 CERTIFICATE_VERIFY_FAILED 错误?

代码:

import websocket
ws = websocket.WebSocket()
ws.connect('wss://stream2.binance.com:9443/ws/!miniTicker@arr@3000ms')
record  = ws.recv()
print(record)
Run Code Online (Sandbox Code Playgroud)

我试图从 Binance Websocket API 获取实时数据。尝试使用此示例 url 获取数据时

wss://stream.binance.com:9443/ws/bnbbtc@depth
Run Code Online (Sandbox Code Playgroud)

我收到此错误,表示 SSL 验证失败。

ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)
Run Code Online (Sandbox Code Playgroud)

追溯:pastebin.com/RiHn025Z

我已经尝试过的:

所以我在SO How to create Python secure websocket client request?上发现了这个问题 并按照此代码的步骤进行操作

ws = websocket.WebSocket(sslopt={"cert_reqs": ssl.CERT_NONE})
      ws.connect("wss://stream2.binance.com:9443/ws/!miniTicker@arr@3000ms")
Run Code Online (Sandbox Code Playgroud)

但随后发生了NameError:

NameError: name 'ssl' is not defined
Run Code Online (Sandbox Code Playgroud)

我尝试添加一个异常(这很荒谬,但仍然......),这导致了语法错误。

其他范围

我尝试使用不同的 websocket API,它使用 wss:// 但在第一个代码本身中工作得很好。

wss://ws.blockchain.info/inv
{"op":"ping"}
Run Code Online (Sandbox Code Playgroud)

状况:

我在 websockets.org 上尝试了 Echo 测试,wss url 功能齐全。

任何帮助将不胜感激。还有其他专门用于 binance 的模块,但我想要原始数据,所以我使用这个 api。

感谢您阅读我的问题。

websocket-client 的 GitHub URL:https …

python ssl client websocket

7
推荐指数
3
解决办法
2万
查看次数

尝试检索 Oauth access_token 时出现 AADSTS50146 错误

正在寻找有关此错误的 AzureAD 帮助 -

"error": "invalid_request", "error_description": "AADSTS50146: 该应用程序需要配置应用程序特定的签名密钥。\r\n跟踪 ID: 6fb978c1-0d74-478c-991c-3ad48ca65f00\r\n相关 ID : 81c05804-175c-456b-8d45-d5365818b599\r\n时间戳: 2019-12-17 19:28:29Z",

我在一个 AzureAD 环境中收到上述错误。当尝试执行 OAuth2.0 令牌请求时。我有另一个测试 AzureAD,其中相同的请求工作正常。

使用 clientId、clientSecret 和 grant_type=client_credentials对https://login.microsoftonline.com/ {tenantId}/oauth2/v2.0/token进行 POST 。

通过谷歌找到了这个 - https://github.com/MicrosoftDocs/azure-docs/issues/5394,但想了解如何在 AzureAD 中配置“范围”参数。

client credentials oauth-2.0 azure-active-directory

7
推荐指数
2
解决办法
8129
查看次数

使用 Socket 从浏览器读取请求后如何发送响应?(我正在使用 SwiftSocket)

我是 iOS 网络的新手,所以不太了解所有概念,我正在制作一个应用程序,它允许在设备上的浏览器上显示数据,为此我正在创建一个套接字端口并使用SwiftSocket

override func viewDidLoad() {
    super.viewDidLoad()
    let ip = String(getAddress(for: .wifi)!)
    self.host = ip
    print("Getting IP address of wifi\n\(self.host)\n")
    self.selfserver()
}
Run Code Online (Sandbox Code Playgroud)

我认为以下函数会selfserver()初始化服务器并等待客户端连接

func selfserver()
{
    let server = TCPServer(address: self.host, port: Int32(port))
    switch server.listen() {
    case .success:
        while true {
            if let client2 = server.accept() {
                print("CLIENT ACCEPTED ....")
                 self.startconnection(senderclient: client2)
            } else {
                print("accept error")
            }
        }
    case .failure(let error):
        print(error)
    }
}
Run Code Online (Sandbox Code Playgroud)

当客户端尝试连接时,senderclient(senderclient: TCPClient)将调用以下函数,并在响应中发送index.html保存在htmlfileURL键入中的文件Userdefaults

func …
Run Code Online (Sandbox Code Playgroud)

sockets client ios swift server

7
推荐指数
1
解决办法
553
查看次数

IntelliJ HTTP 客户端 - 在另一个 POST 请求的以下 JSON 正文中使用一个 POST 请求中设置的变量

在 IntelliJ 上的 HTTP 客户端编辑器中,我尝试执行以下操作:

POST http://{{host}}/path-to-my-first-resource

Content-Type: application/json

{"field1":"false",
 "field2":"test",
 "field3":"test",
}
Run Code Online (Sandbox Code Playgroud)

我得到了上述 POST 的结果:

> {%
client.global.set("my-first-returned-var", response.body.json.var1);
client.global.set("my-second-returned-var", response.body.json.var2);
client.global.set("my-third-returned-var", response.body.json.var3); 
%}
Run Code Online (Sandbox Code Playgroud)

变量已成功返回。因此,我尝试在后续的 POST 中使用这些变量,如下所示:

POST http://{{host}}/path-to-my-second-resource

Content-Type: application/json

{"anotherfield1":"{{my-first-returned-var}}",
 "justanother":"{{my-second-returned-var}}"
}
Run Code Online (Sandbox Code Playgroud)

我尝试发送正文中带引号和不带引号的变量,但 IntelliJ 没有翻译双花括号内的变量。我可以使用 HTTP 标头上的变量,例如:

GET https://my-request
Authorization: Bearer {{my-first-returned-var}}
Run Code Online (Sandbox Code Playgroud)

但我无法在 JSON 正文中使用这些变量。

我尝试使用的 API 是 Spring Boot REST 控制器,它使用 Jackson lib 将请求体反序列化为 Java 对象。Spring Boot返回的错误信息是这样的:

JSON 解析错误:无法反序列化java.lang.StringSTART_OBJECT 令牌之外的实例;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException

client http intellij-idea

7
推荐指数
1
解决办法
5685
查看次数