标签: client

Win32中用于本机C/C++的高级HTTP客户端库

在Win32中没有用于本机C/C++的"高级"HTTP库,或者我只是在错误的地方寻找?

"高级"是指一种API,它允许我使用与.NET框架"大致相同"的抽象级别在C++中执行HTTP Web请求/响应(但请注意,使用C++/CLI不是我的选择).

如何在不使用.NET的情况下在Win32中的C/C++中执行此类操作(具有大约相同数量的代码)?作为参考,我提供了一个代码示例来说明我是如何在C#中完成的.

byte[] fileBytes = null;
bool successfulDownload = false;
using (WebClient client = new WebClient())
{
    WebProxy proxy = WebProxy.GetDefaultProxy();
    client.Proxy = proxy;
tryAgain:
    try
    {
        fileBytes = client.DownloadData(fileUrl);
        successfulDownload = true;
    }
    catch (WebException wEx)
    {
        if (wEx.Response != null && wEx.Response is HttpWebResponse)
        {
            string username = null, password = null;
            bool userCanceled = false;
            HttpStatusCode statusCode = ((HttpWebResponse)wEx.Response).StatusCode;
            switch (statusCode)
            {
                case HttpStatusCode.ProxyAuthenticationRequired:
                    // This is just a convenience function defined elsewhere
                    GetAuthenticationCredentials(fileUrl, true, …
Run Code Online (Sandbox Code Playgroud)

c++ winapi client http

11
推荐指数
3
解决办法
1万
查看次数

Clojure实现多线程的最佳方法?

我正在使用Clojure编写的MUD客户端.现在,我需要两个不同的线程.接收来自用户的输入并将其发送到MUD(通过简单的Socket),以及从MUD读取和显示输出的输入到用户的输入.

我应该只使用Java线程,还是我应该转向某些特定于Clojure的功能?

client multithreading clojure mud

11
推荐指数
1
解决办法
971
查看次数

面向DAG的git浏览器?

有git介绍与漂亮的 图表,以了解"git的历史只是一个DAG"的概念.我想知道为什么有(似乎)很少的视觉git浏览器建立在这个精确的模型上来表示历史.

除此之外,所有的视觉git浏览器(gitk,git-gui,GitX等)都将图形推到了一个狭窄的列,而不是文本信息.

是否有以DAG视图为主要特征的git repo浏览器?任何平台,任何语言,独立,GUI/CUI都无关紧要.

我不打算解决手头的具体问题.只是希望一个激进的工具可以帮助我达到git zen.

编辑:相关但在OP的视图中,有不同的问题:

我正在寻找的不仅仅是"生成git历史DAG的工具"; 像网络浏览器一样,这个假设的"面向DAG的git浏览器"应该能够查看,搜索,跳转和过滤历史图表.

git client directed-acyclic-graphs

11
推荐指数
1
解决办法
4470
查看次数

Python客户端 - SSL lib - 证书验证失败

我正在尝试为学习目的做一个小型安全HTTPS客户端,看看SSL的所有机制现在如何在更高层次上工作,所以我试图通过ssl.wrap_socket将一个简单的套接字转换为ssl.

我可能倒退了整个概念但是,这就是我正在做的事情:

s.connect((host, port))
if port == 443:
    f = open('cacerts.txt', 'r')
    calist = f.read()
    f.close()
    ca = ssl.get_server_certificate((host, port), ssl_version=ssl.PROTOCOL_SSLv3|ssl.PROTOCOL_TLSv1)
    if not ca in calist:
        f = open('cacerts.txt', 'a')
        f.write(ca)
        f.close()
    s = ssl.wrap_socket(s, ssl_version=ssl.PROTOCOL_SSLv3|ssl.PROTOCOL_TLSv1, cert_reqs=ssl.CERT_REQUIRED, ca_certs="cacerts.txt")
    s.do_handshake()
Run Code Online (Sandbox Code Playgroud)

当我调用do_handshake()时,我得到了这个:

Traceback (most recent call last):
  File "SSL_test.py", line 84, in Requester
    s = ssl.wrap_socket(s, ssl_version=ssl.PROTOCOL_SSLv3|ssl.PROTOCOL_TLSv1, cert_reqs=ssl.CERT_REQUIRED, ca_certs="cacerts.txt")
  File "C:\Python26\lib\ssl.py", line 338, in wrap_socket
    suppress_ragged_eofs=suppress_ragged_eofs)
  File "C:\Python26\lib\ssl.py", line 120, in __init__
    self.do_handshake()
  File "C:\Python26\lib\ssl.py", line 279, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [Errno …
Run Code Online (Sandbox Code Playgroud)

python ssl https client verify

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

Spring RestTemplate Client - 连接拒绝异常

我是webservices的新手,并尝试使用RestTemplate编写RESTFul webservice的客户端.我使用org.springframework.http.converter.xml.MarshallingHttpMessageConverter作为消息转换器,org.springframework.oxm.xstream.XStreamMarshaller作为marshaller.

有没有办法进一步调试这个或找出这个问题的根本原因?

我的消费者类看起来像这样 -

@SuppressWarnings("unchecked")
public List<Deal> getClientInformation() throws RestClientException {
    return restTemplate.getForObject(webServiceURL, List.class);
Run Code Online (Sandbox Code Playgroud)

}

例外:

Exception in thread "main" org.springframework.web.client.ResourceAccessException: I/O error: Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:359)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:307)
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:177)
at main.java.com.sample.consumer.DealConsumer.getClientInformation(Consumer.java:35)
at main.java.com.client.WebserviceConsumerTestClient.main(WebserviceConsumerTestClient.java:16)
Run Code Online (Sandbox Code Playgroud)

引起:java.net.ConnectException:连接被拒绝:连接org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:359)

rest spring client web-services

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

Netty 4多个客户端

我需要让客户端能够建立许多连接.我使用Netty 4.0.不幸的是,所有现有示例都没有显示如何创建大量连接.

public class TelnetClient {
    private Bootstrap b;
    public TelnetClient() {
        b = new Bootstrap();
    }
    public void connect(String host, int port) throws Exception {
        try {
            b.group(new NioEventLoopGroup()).channel(NioSocketChannel.class).remoteAddress(host, port).handler(new TelnetClientInitializer());
            Channel ch = b.connect().sync().channel();
            ChannelFuture lastWriteFuture = null;
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            for (;;) {
                String line = in.readLine();
                if (line == null) break;
                lastWriteFuture = ch.write(line + "\r\n");
                if (line.toLowerCase().equals("bye")) {
                    ch.closeFuture().sync();
                    break;
                }
            }
            if (lastWriteFuture != null) lastWriteFuture.sync();
        } finally {
            b.shutdown();
        } …
Run Code Online (Sandbox Code Playgroud)

java connection client netty

11
推荐指数
1
解决办法
8840
查看次数

Netty客户端到服务器消息

这实际上是我在这里发表的第一篇文章,我一直试图解决这个问题已经有一段时间了,但我终于打电话给国旗并尝试在这个主题上寻求帮助.

所以我有一个客户端和一个服务器,它是在echo客户端/服务器和安全聊天客户端/服务器之后建模的.我对聊天的SSL部分并不感兴趣,只是为了确保我收到客户端/服务器的响应.我将在本文的底部添加所有相关代码.我目前遇到的问题是,我可以在客户端连接时从服务器向客户端发送消息,但是在服务器向客户端发送初始消息时,我无法从客户端向服务器发送消息.从服务器发送的消息是:

Welcome to the server!
Run Code Online (Sandbox Code Playgroud)

来自客户端的消息是

test
Run Code Online (Sandbox Code Playgroud)

我应该知道我收到了来自客户端的消息,因为它应该回显

[You] test
Run Code Online (Sandbox Code Playgroud)

我知道服务器看到客户端,它给我状态更新但我不能出于某种原因向服务器发送消息.现在提出一个问题...有一次机会我正在使用StringDecoderStringEncoder作为解码器和编码器...如果你正在制作一个游戏(这就是我正在做的),你会有类似的东西登录,玩家动作,世界更新等......发送Strings是最好的方法吗?我知道我看到很多字节流,在我的编程课中,我经历过触摸操作字节流,但我仍然不是很满意它们.如果字节流是更好/最好的方法,那么有人可以详细解释如何操作字节流以处理不同的项目.

如前所述,这是客户端中所有内容的开始:

public class Client {

public Client() {
    // Initialize the window
    GameWindow.init();
    // Initialize the server connection
    ClientHandler.init();
}

public static void main(String[] args) throws Exception {

    // Set a default server address if one isn't specified in the arguments
    if (args.length < 2 || args.length > 3) {
        System.err.println("Usage: " + Client.class.getSimpleName() + " <host> <port> [<first message size>]");
        System.err.println("Using default values."); …
Run Code Online (Sandbox Code Playgroud)

java connection client tcp netty

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

Azure Service Bus客户端连接持久性

我有一个围绕Azure Service Bus代码的基本包装器,我们将在一个辅助角色中使用它.这ServiceBusClient将每个工人的角色运行时进行实例化; 然后用来访问队列,直到没有剩余的项目进行枚举.

public class ServiceBusClient : IDisposable, IServiceBusClient
{
    private const int DEFAULT_WAIT_TIME_IN_SECONDS = 120;

    private const string SERVICE_BUS_CONNECTION_STRING_KEY = "service.bus.connection.string";

    private readonly MessagingFactory _messagingFactory;

    private readonly NamespaceManager _namespaceManager;

    private readonly QueueClient _queueClient;

    private readonly ISettingsManager _settingsManager;

    public ServiceBusClient(ISettingsManager settingsManager, string queueName)
    {
        _settingsManager = settingsManager;

        var connectionString = _settingsManager.GetSetting<string>(SERVICE_BUS_CONNECTION_STRING_KEY);

        _namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
        _messagingFactory = MessagingFactory.CreateFromConnectionString(connectionString);

        _queueClient = GetOrCreateQueue(queueName);
    }

    public void Dispose()
    {
        _messagingFactory.Close();
    }

    public BrokeredMessage ReceiveTopMessage()
    {
        return _queueClient.Receive(TimeSpan.FromSeconds(DEFAULT_WAIT_TIME_IN_SECONDS));
    }

    public void SendMessage(object …
Run Code Online (Sandbox Code Playgroud)

c# client azure azureservicebus

11
推荐指数
1
解决办法
7712
查看次数

如何为Native Client Application设置客户机密钥以访问Azure Graph

我开发了一个使用Azure AD进行身份验证的Native Client应用程序.我需要使用需要客户端ID和客户端密钥的AD Graph访问一些信息.我已将应用程序添加到我的Azure活动目录中.我添加了对Active Directory身份验证库(ADAL)的引用并安装了GraphAPI.身份验证上下文的AquireToken需要客户端ID(我有)和客户端密钥(密钥),我没有.我在Azure门户中查看了应用程序配置的所有位置,看起来本机应用程序没有设置密钥的选项.网络应用程序.有谁知道如何设置和获取本机应用程序的密钥?

client azure

11
推荐指数
1
解决办法
6241
查看次数

已弃用的DefaultHttpClient的替换

DefaultHttpClient在我当前的应用程序中使用.

我读过这篇文章,该文章指出DefaultHttpClient已弃用:http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.html

它指向这个网站:http://android-developers.blogspot.com/2011/09/androids-http-clients.html?m = 1,它太旧了,写于2011年.

我将放弃使用DefaultHttpClient并遵循这篇使用Apache的文章HttpClient:http://loopj.com/android-async-http/

我想知道这是在2015年针对Android API 19及更高版本的编程时采取的正确途径.

client android http

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