私は比較的新しいcurlで、curlを使用して文字列を送るCでクライアントを実行しようとしています。一方、サーバーとして、私はHttpServletを使用してHTTP要求を聞いているJavaプログラムを持っています。 私はいくつかのデータをカールして送信すると、サーバーはそれを取得したものの、送信された形式ではないことがわかります。例えば Iがデータを送信していた場合:サーバー側の要求内容がなるで "8D015678" :ここでは56、68、48、49、53、54、55、56 は、クライアントコードが(C)である。CURL:クライアントとサーバーの通信Windows c/java
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からコンバータを持っている必要があることを意味していますか? カールのデータがそのまま渡されると思いましたか?私は何が欠けていますか? 私のデータが必要な場合、たとえば。 8D015678をサーバから8D015678として受け取るにはどうすればいいですか? データがどのように引き渡され、クライアントがこれらの要求を受け取るカールとサーバで対処するかに関する説明をお願いします。 ありがとうございます。