【发布时间】:2009-12-12 10:48:10
【问题描述】:
我在 .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 "Content-Type: application/xml" -H "Accept: application /xml" 问题是xml没有被正确访问
【问题讨论】:
-
我也使用过--basic,但alos似乎不起作用
-
发布
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\"和System.out(curlCmd.toString());的输出 -
我只想要 java curl -o response.txt -w %{http_code} -k -v $AUTH_OPTION -X $HTTP_METHOD $FILE_OPTION -H \"Content-Type: $CONTENT_TYPE\" -H \"接受:$ACCEPT_TYPE\"
-
输出为: curl -o response.txt -w %{http_code} -k -v -u testuser:testpwd -X POST -d @/path/xyz.xml -H "Content-Type : application/xml" -H "Accept: application/xml" 无法处理 xml,
-
“无法处理 xml”从何而来?服务器无法处理/path/xyz.xml的内容吗?