当我运行以下代码以使用此代码片段查询dblp数据集时
我正在使用此端点http://dblp.l3s.de/d2r/snorql
enter code here
String st =“”;
String qry =“”;
字符串uri_V;
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:尝试进行SPARQL查询时发生HTTP错误,有关详细信息,请参阅内部异常---&gt; System.Net.WebException:远程服务器返回错误:(400)错误请求。在VDS.RDF上的VDS.RDF.Query.SpyqlRemoteEndpoint.ExecuteQuery(Uri target,String postData,String accept)上的System.Net.HttpWebRequest.GetResponse()处于VDS的VDS.RDF.Query.SparqlRemoteEndpoint.QueryInternal(String sparqlQuery,String acceptHeader)。 RDF.Query.SparqlRemoteEndpoint.QueryWithResultSet(ISparqlResultsHandler handler,String sparqlQuery)---内部异常堆栈跟踪结束---在VDS.RDF.Query上的VDS.RDF.Query.SparqlRemoteEndpoint.QueryWithResultSet(ISparqlResultsHandler handler,String sparqlQuery)。 SparqlRemoteEndpoint.QueryWithResultSet(String sparqlQuery)位于d:\ SPARQL \ Index.aspx.cs中的Index.ImageButton1_Click(Object sender,ImageClickEventArgs e):第48行
Plz帮我解决ASAP,PLZ
答案 0 :(得分:0)
使用dotNetRDF
查看Debugging HTTP Communications上的文档在您的请求之前设置以下内容:
Options.HttpDebugging = true;
这将使dotNetRDF向控制台打印有关HTTP请求和响应的调试信息,如果这不足以启发,还可以启用以下内容:
Options.HttpFullDebugging = false;
这会将完整的HTTP响应转储到控制台,这样您就可以确切地看到服务器发回的错误消息。
然而启用后一个选项会导致后续代码失败,现在出现不同的错误,因为预期的响应流不会耗尽,所以一旦这给你足够的信息来调试你的问题就不会忘了再把它关掉!