gpt4 book ai didi

java - CURL:客户端和服务器通信 Windows c/java

转载 作者:行者123 更新时间:2023-11-30 16:51:00 25 4
gpt4 key购买 nike

我对curl比较陌生,我正在尝试用C语言做一个使用curl发送字符串的客户端。另一方面,作为服务器,我有一个 Java 程序,它使用 HttpServlet 监听 HTTP 请求。当我使用curl发送一些数据时,我看到服务器获取了它,但不是以发送的格式。例如,如果我发送数据:“8D015678”在服务器端请求内容将为:56,68,48,49,53,54,55,56这是客户端代码(c):

int status = 0;
char * ip_to_connect = "http://127.0.0.1:5004/unilateral
const char * request = "8D015678";
status = curl_easy_setopt(curl, CURLOPT_URL, ip_to_connect);

if (!status)
{
status = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &writeCallback);
}
if (!status)
{
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long) strlen(request));
}
if (!status)
{
status = curl_easy_setopt(curl, CURLOPT_POSTFIELDS, request);
}
if (!status)
{
status = curl_easy_perform(curl);
}

这是服务器(java)的解析器代码:

   System.out.println("[requestHandlerFactory] header is not Content");
int contentLength = request.getContentLength();
this.content = new byte[contentLength];
try {
ServletInputStream input = request.getInputStream();
int read = input.read(content, 0, contentLength);
System.out.println("[doPost] contentLength = " + contentLength + "data = " + content[0]);

这是否意味着我需要一个从 ASCI 到符号的转换器?我认为在curl中数据是按原样传递的?我缺少什么?如果我想要我的数据,例如。 8D015678 由服务器获取为 8D015678 我该如何发送它?请解释一下数据如何传递以及如何处理curl中的客户端和接收这些请求的服务器提前致谢。希望清楚

最佳答案

当流结束时,

InputStream.read(..) 返回 -1,否则该值可以简单地转换为字符。这种返回值和错误代码的组合是旧的,而且相当不幸,今天的设计会有所不同。只需将其转换为 char 并处理即可。

官方文档位于https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read()

查看 http://www.tutorialspoint.com/java/io/inputstream_read.htm一个工作示例。

本质是:

  // new input stream created
is = new FileInputStream("C://test.txt");

System.out.println("Characters printed:");

// reads till the end of the stream
while((i=is.read())!=-1)
{
// converts integer to character
c=(char)i;

// prints character
System.out.print(c);
}

关于java - CURL:客户端和服务器通信 Windows c/java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41931001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com