java - Java中的curl语法模拟

标签 java curl

我在 .sh 文件中有一个curl 语法。我需要在Java中运行curl sytnax或curl命令来复制相同的语法,但我在复制相同的语法时遇到问题。

$AUTH_OPTION="--basic -u testuser:testpwd"
$HTTP_METHOD=POST
$FILE_OPTION="-d @$INPUT_FILE"
$CONTENT_TYPE="application/xml"
$ACCEPT_TYPE="application/xml"

echo curl -o response.txt -w %{http_code} -k -v $AUTH_OPTION -X $HTTP_METHOD $FILE_OPTION -H \"Content-Type: $CONTENT_TYPE\" -H \"Accept: $ACCEPT_TYPE\" 

我有相应的Java代码为:

StringBuffer curlCmd=new StringBuffer();
curlCmd.append("curl -o response.txt");
curlCmd.append(WHITE_SPACE);
curlCmd.append("-w %{http_code}");
curlCmd.append("-k -v -u testuser:testpwd");
curlCmd.append(WHITE_SPACE);
curlCmd.append("-X POST");
curlCmd.append(WHITE_SPACE);
curlCmd.append("-d @/test/xyz/xml" );
curlCmd.append(WHITE_SPACE);
curlCmd.append("-H"+"Content-type: application/xml");
curlCmd.append(WHITE_SPACE);
curlCmd.append("-H"+" Accept: application/xml");
curlCmd.append(WHITE_SPACE);

这似乎不起作用:它没有模拟 .sh curl 语法的相同行为。谁能帮我解决这个问题吗?

输出 curl -o response.txt -w %{http_code} -k -v -u testuser:testpwd -X POST -d @/path/xyz.xml -H "内容类型:application/xml"-H "接受:应用程序/xml” 问题是 xml 没有被正确访问

最佳答案

我认为存在一些可能的问题,但引起我注意的一个问题是您缺少 Content-Type: $CONTENT_TYPEAccept: $ACCEPT_TYPE 周围的引号,例如:

"-H \"Content-type: application/xml\""

第二个错误是您编写了 -d @/test/xyz/xml 但它应该是:

-d @/test/xyz.xml

如果仍然不起作用,您能否发布 sh 脚本和 StringBuffer 的输出,以便我们可以更轻松地看到差异在哪里?

关于java - Java中的curl语法模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1893040/

相关文章:

java - java中的两个面板布局(第一个面板具有固定大小,第二个面板具有剩余大小)

java - 如何禁用BufferRecycler?

php - wamp 本地主机 SSL 错误上的 Amazon S3

php - 创建新的 symfony 项目时出错

ruby-on-rails - OpenSSL::SSL::SSLError SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B:证书验证失败

php - curl 错误: Operation timed out

perl - 对 URL 中的双引号进行转义以使用curl 命令执行

java - 如何有效地使用多线程

java - 初学者Java REST 404错误

Java Websockets - 被不同的选项搞糊涂了