私は今、1週間以上単純なAPIの使用法に固執しています。詳細はこちらです。
ebay.comへのAPI呼び出しを行おうとしています。これが私のコードのようです...
これは開始ページのコードです:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Results.aspx?Keywords=" + searchString.Text);
}
このページは、次のコードに誘導されます。
if (Request.QueryString["Keywords"] != null){
string keywords = Request.QueryString["Keywords"];
string myAppID = "HIDDEN";
var xml = XDocument.Load("http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=" + myAppID + "&RESPONSE-DATA-FORMAT=XML&REST-PAYLOAD&keywords=" + keywords + "&paginationInput.entriesPerPage=5");
XNamespace ns = "http://www.ebay.com/marketplace/search/v1/services";
var titles = from item in xml.Root.Descendants(ns + "title")
select new{
title = xml.Descendants(ns + "title").Select (x => x.Value),
};
foreach (var item in titles){
Label1.Text += item;
}
}
xmlの例を次に示します。
<findItemsByKeywordsResponse xmlns="http://www.ebay.com/marketplace/search/v1/services">
<searchReslut count="5">
<item>
<title></title>
</item>
<item>
<title></title>
</item>
<item>
<title></title>
</item>
私は実際には、アイテムをリストするだけでなく、アイテムを配列に変換します。最初にもっと簡単なアプローチを試してみようと思っただけです。私が得るエラーは次のとおりです:私のラベルへのforループ出力は次のようになります:
{ title = System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Xml.Linq.XElement,System.String] }{ title = System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Xml.Linq.XElement,System.String] }{ title = System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Xml.Linq.XElement,System.String] }{ title = System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Xml.Linq.XElement,System.String] }{ title = System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Xml.Linq.XElement,System.String] }
そして、出力例外は次のとおりです。
タイプ'System.Threading.ThreadAbortException'の最初のチャンスの例外がmscorlib.dllで発生しましたタイプ'System.Threading.ThreadAbortException'の例外がmscorlib.dllで発生しましたが、ユーザーコードで処理されませんでしたスレッド''(0x27ee4)が終了しましたコード0(0x0)。
どんな助けでも大歓迎です!