2016-08-21 5 views
2

FileManager.get(). loadModel (url) 함수를 사용하여 apache jena에서 모델을로드하고 있습니다. HTTP 응답 링크 헤더에 일부 URL이있을 수 있습니다. 링크 헤더의 링크 (URL)에서도 모델을로드하려고합니다. 어떻게해야합니까? 응답 헤더의 헤더 및 프로세스 링크 헤더에 액세스 할 수있는 모든 inbuilt fuctionality가 있습니까?호출하는 동안 apache jena에서 http 응답 헤더를 얻는 방법 FileManager.get(). loadModel (url)

+0

"sparql"태그가 제거되었습니다. 질문과 관련이 없습니다. – AndyS

답변

0

나는 이것이 Jena에 의해 지원된다고 생각하지 않습니다. 그렇게 할 이유가 없습니다. HTTP 요청은 데이터를 얻고 응답 유형을 가져 오기 위해 수행됩니다. 일부 헤더 필드의 URL을 얻고 싶은 경우에, 왜 단순히 평범한 구식 자바를 사용하지 :

URL url = new URL("http://your_ontology.owl"); 
URLConnection conn = url.openConnection(); 
Map<String, List<String>> map = conn.getHeaderFields(); 
+0

즉, 동일한 URL을 두 번 호출한다는 의미입니다. 먼저 URL을 통해 모델을로드 할 때 헤더를 가져 오는 동안 초를로드합니다. – Badman

+0

@Badman AKSW는 암묵적으로 'conn.getContent'를 사용하여 RDF 콘텐츠를 가져올 수 있다고 말합니다.이 콘텐츠는 Jena에로드 할 수 있으므로 한 번만 연결하면됩니다. –

+0

@JoshuaTaylor HttpGet을 사용하여이 작업을 수행 할 수 있지만이를 피하려고합니다. apache jena에서 HttpOp.java를 사용하여이 작업을 수행하려고합니다. HttpContext, HttpAuthenticator, HttpClient가 HttpOp.java의 execHttpGet() 함수에서 정확히 어떻게 수행되는지 알고 싶습니다. – Badman

2

FileManager.get().loadModel(url) 패키지를 최대 URL을 읽고 모델로 결과를 분석. 그것은 할 공통의 ​​것을 포장하고 있습니다; 그것은 포괄적이라고 주장하지 않습니다. 꽤 오래된 인터페이스입니다.

HTTP 처리에 대한 세부 제어가 필요한 경우 HttpOp (하위 수준) 메커니즘이 도움이되는지 확인하고 그렇지 않은 경우 응용 프로그램에서 처리하고 파서에 대한 응답의 입력 스트림을 직접 전달하십시오.

내용 협상과 관련하여 RDFDataMgr.process의 코드를 확인하는 것이 유용 할 수도 있습니다.