2013-04-03 59 views
0

當我運行下面的代碼使用此代碼段 查詢DBLP數據集我使用該端點http://dblp.l3s.de/d2r/snorql enter code here字符串ST =「」; 字符串QRY = 「」; String uri_V;.NET RDF DBLP數據集查詢

uri_V = "http://dblp.l3s.de/d2r/sparql"; 



    // Modify if need...... 
    //String ns = "\""+TextBox1.Text.ToString()+"\""; 
    // String qry = "SELECT DISTINCT ?name WHERE { ?person foaf:name ?name.FILTER regex(str(?name),"+ns+").}"; 
    if (radiosrch.SelectedIndex == 0) 
    { 
     qry = "SELECT ?title WHERE {?game <http://purl.org/dc/terms/subject> <http://dbpedia.org/resource/Category:First-person_shooters> .?game foaf:name ?title .}ORDER by ?title"; 
    } 
    else// if (radiosrch.SelectedIndex == 1) 
    { 
     // qry= "query for publisher." 
     qry = "SELECT DISTINCT ?Concept WHERE {[] a ?Concept} LIMIT 10"; 
    } 


    //Common 
    SparqlRemoteEndpoint endpoint = new SparqlRemoteEndpoint(new Uri(uri_V)); 
    SparqlResultSet results = endpoint.QueryWithResultSet(qry); 
    foreach (SparqlResult result in results) 
    { 
     Console.WriteLine(result.ToString()); 
     st = st + result.ToString() + "\n"; 
    } 
    TextBox3.Text = st.ToString(); 
} 
catch (Exception ex) 
{ 
    Label1.Visible = true; 
    Label1.Text = ex.ToString(); 
} 

我收到以下錯誤

VDS.RDF.Query.RdfQueryException:HTTP錯誤的發生,同時設法使SPARQL查詢,請參閱內部異常的詳細信息---> System.Net.WebException :遠程服務器返回錯誤:(400)錯誤的請求。在System.Net.HttpWebRequest.GetResponse()在VDS.RDF.Query.SparqlRemoteEndpoint.ExecuteQuery(URI目標,字符串POSTDATA,字符串接受)在VDS.RDF.Query.SparqlRemoteEndpoint.QueryInternal(字符串sparqlQuery,字符串acceptHeader)在VDS。 RDF.Query.SparqlRemoteEndpoint.QueryWithResultSet(ISparqlResultsHandler處理程序,字符串sparqlQuery)---內部異常堆棧跟蹤的末尾在VDS.RDF.Query.SparqlRemoteEndpoint.QueryWithResultSet(ISparqlResultsHandler處理程序,字符串sparqlQuery)在VDS.RDF.Query。 SparqlRemoteEndpoint.QueryWithResultSet(字符串sparqlQuery)在Index.ImageButton1_Click(對象發件人,ImageClickEventArgs e)在d:\ SPARQL \ Index.aspx.cs:行48

plz幫助我儘快解決,PLZ

回答

0

查看文檔在Debugging HTTP Communications與dotNetRDF

設置以下之前,您的要求:

Options.HttpDebugging = true; 

然後,這將有dotNetRDF打印調試信息到關於HTTP請求和響應的控制檯,如果沒有足夠的啓發還啓用以下:

Options.HttpFullDebugging = false; 

這將轉儲完整的HTTP響應到控制檯,以便您可以確切地看到錯誤消息,如果有什麼服務器發回。

然而開啓後者選項將導致後續代碼失敗與現在不同的錯誤,因爲預期的響應流不會被耗盡,一旦這個已經給了你足夠的信息來調試你的問題,不要忘記把它再次關閉!