Пустой GETINPUTSTREAM - PullRequest
       9

Пустой GETINPUTSTREAM

0 голосов
/ 09 июля 2019

Я пытаюсь получить входной поток из URL. URL работает нормально в браузере, поэтому я получаю необходимую информацию, например:

<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>
UEsDBBQABgAIAAAAIQA5en1zywEAAGMIAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAAAAAAAAAAAAAA/hABAGRvY1Byb3BzL2FwcC54bWxQSwUGAAAAABwAHAAwBwAAFhQBAAAA
</FILE_CONTENT>
<FILE_EXTENSION>docx</FILE_EXTENSION>
<ERROR/>
<END_MESSAGE/>
</SUCCESS>

Но при этом, открывая URL-соединение, это не работает. вот мой код:

public void sendHttpRequest(String theUrl, String postRequest) throws Exception {
        URL UrlOpenRequest = new URL("http://example.com/docs/modules/content/applet_controller.php?action=editObject&objectType=resource&objectTable=res_version_business&objectId=206");
        System.out.println("UrlOpenRequest: "+UrlOpenRequest.toString());
        HttpURLConnection HttpOpenRequest = (HttpURLConnection) 
        UrlOpenRequest.openConnection();
        HttpOpenRequest.setRequestMethod("POST");
        HttpOpenRequest.setRequestProperty("Accept", "*/*");
        HttpOpenRequest.setDoInput(true);
        HttpOpenRequest.setDoOutput(true);      


        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();
    }

The System.out.println("UrlOpenRequest: "+UrlOpenRequest.toString()); дает мне это: http://example.com/docs/modules/content/applet_controller.php?action=editObject&amp;objectType=resource&amp;objectTable=res_version_business&amp;objectId=206

В чем может быть проблема? Это проблема URL кодирования? Если так, как я могу это исправить?

1 Ответ

0 голосов
/ 09 июля 2019

Чтобы прочитать содержимое за URL вы можете сделать:

InputStream input = UrlOpenRequest.openStream();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...