gpt4 book ai didi

java - 从 URL(Web 服务器上的 XML 文件)获取输入流时出错

转载 作者:行者123 更新时间:2023-12-02 03:15:03 25 4
gpt4 key购买 nike

我试图获取一个 xml 文件作为流来解析它。但我收到此错误:

ERROR : missing parameters, action:, objectType:, objectTable:, objectId:

出现此错误时,xml 文件如下:

    <ERROR>
<STATUS>ko</STATUS>
<OBJECT_TYPE/>
<OBJECT_TABLE/>
<OBJECT_ID/>
<APP_PATH/>
<FILE_CONTENT/>
<FILE_EXTENSION/>
<ERROR>
missing parameters, action:editObject, objectType:, objectTable:, objectId:
</ERROR>
<END_MESSAGE/>
</ERROR>

但是当我在浏览器上访问实际链接时,我得到了正确的文件:

    <SUCCESS>
<STATUS>ok</STATUS>
<OBJECT_TYPE>resource</OBJECT_TYPE>
<OBJECT_TABLE>res_version_business</OBJECT_TABLE>
<OBJECT_ID>206</OBJECT_ID>
<APP_PATH>start</APP_PATH>
<FILE_CONTENT>UEsDBBQABgAIAAAAIQA5en1zywEAAGMIAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAACAAAA</FILE_CONTENT>
<FILE_EXTENSION>docx</FILE_EXTENSION>
<ERROR/>
<END_MESSAGE/>
</SUCCESS>

这是我的代码:

    public void sendHttpRequest(String theUrl, String postRequest) throws Exception {

URL UrlOpenRequest = new URL(theUrl);
System.out.println("UrlOpenRequest: "+ theUrl);
HttpURLConnection HttpOpenRequest = (HttpURLConnection)
UrlOpenRequest.openConnection();
HttpOpenRequest.addRequestProperty("Accept", "*/xml");
//HttpOpenRequest.setDoInput(true);
HttpOpenRequest.setDoOutput(true);
HttpOpenRequest.setRequestMethod("POST");
HttpOpenRequest.setRequestProperty("Accept", "*/xml");

if (!"none".equals(postRequest)) {
OutputStreamWriter writer = new
OutputStreamWriter(HttpOpenRequest.getOutputStream());
writer.write("fileContent=" + this.fileContentTosend + "&fileExtension=" + this.fileExtension);
writer.flush();
} else {
OutputStreamWriter writer = new
OutputStreamWriter(HttpOpenRequest.getOutputStream());
writer.write("foo=bar");
writer.flush();
}
System.out.println("INPUT STREAM: "+HttpOpenRequest.getInputStream().available());

this.parse_xml(HttpOpenRequest.getInputStream());
HttpOpenRequest.disconnect();
}

知道这个错误的原因吗?

最佳答案

尝试这段代码,看看你会得到什么:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;


public class Main
{
public static void main(String[] args)
throws Exception
{
new Main();
}

public Main()
{
try
{
String myUrl = "http://google.com/"; // change your url here

String results = doHttpUrlConnectionAction(myUrl);
System.out.println(results);
}
catch (Exception e)
{
//whatever error
}
}

private String doHttpUrlConnectionAction(String desiredUrl)
throws Exception
{
URL url = null;
BufferedReader reader = null;
StringBuilder stringBuilder;

try
{
url = new URL(desiredUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");

connection.setReadTimeout(30*1000);
connection.connect();

reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
stringBuilder = new StringBuilder();

String line = null;
while ((line = reader.readLine()) != null)
{
stringBuilder.append(line + "\n");
}
return stringBuilder.toString();
}
catch (Exception e)
{
e.printStackTrace();
throw e;
}
finally
{
if (reader != null)
{
try
{
reader.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
}
}
}

关于java - 从 URL(Web 服务器上的 XML 文件)获取输入流时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56967184/

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