Как создать TDB Fuseki по HTTP-запросу POST с помощью Assembler.ttl? (Как отправить файл через POST-запрос) - PullRequest
1 голос
/ 11 февраля 2020

https://jena.apache.org/documentation/fuseki2/fuseki-server-protocol.html Читая документацию, мы видим, что можем отправить запрос POST, содержащий определения ассемблера .ttl, в конечную точку Fuseki. Хотя при попытке этого мое приложение не получает никакого ответа от сервера.

Я пытаюсь этот код в Java:

/**
     * This Method creates a persistent TDB2 in Fuseki Server by a POST request
     * @param name Name of the DataSet to be Created
     * @throws MalformedURLException 
     * @throws ProtocolException 
     * @throws UnsupportedEncodingException 
     */
    public void createDatasetInFuseki(String name) throws Exception{
        try {
            HttpURLConnection conn = (HttpURLConnection) new URL(server_location + "/$/datasets").openConnection();
            conn.setRequestMethod("POST");
            conn.setDoInput(true);
            conn.setDoOutput(true);
            OutputStream os = conn.getOutputStream();

            File assembler_file = new File("C:\\Users\\Carlos\\Desktop\\fuseki-assembler.ttl");

            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));

            try {
                    InputStream fis = new FileInputStream(assembler_file);
                    int content;
                    //Read .ttl content by InputStream
                    while ((content = fis.read()) != -1) {
                            writer.write((char) content); //Write the readed content in http OutPutStream
                    }
            } catch (IOException e) {
                    e.printStackTrace();
            }

            writer.flush();
            writer.close();
            os.close();
            String fuseki_response = conn.getResponseMessage();
            conn.connect();
        }finally {}
    }

Я хотел бы знать, как POST файл правильно на сервер через Java клиента, если возможно.

1 Ответ

0 голосов
/ 12 февраля 2020

Моя ошибка была в формате поста. Я решил свою проблему, используя этот вопрос Загрузка файлов из Java клиента на HTTP-сервер

Отправка файла Assembler.ttl позволяет программно создавать экземпляры набора данных Fuseki с помощью Reasoner. Это позволяет серверу рассуждать о времени выполнения по включенным данным.

...