C# WindowsForms(.Net Framework 4.7)でネットショッピングサイトQoo10の操作ツールを制作しています。
その中でAPIを使用したやり取りを行うのですがよくわかりません。
http://api.qoo10.jp/GMKT.INC.Front.OpenApiService/APIList/Certification.api/CreateCertificationKey?user_id=string&pwd=string
上記の方法でURLにパラメータを付加してする方法はできていました。
ですが商品登録APIの際に商品説明文を送信するのですがそれをURLに直接付加するのは長すぎるのかなと思い他の方法を探しています。
ネット上にはJSONの方法はよく参考例としてあるのですがピンポイントで当てはまるようなものが無く。。。
APIのヘルプページにはPOST、GET、SOAPといった方法が使用できるとあり、「C# POST」で検索して半日ほどネット上の参考例をもとに試行錯誤していたのですが Server Error(500)しか出ず成功しません。
どの方式でも構いません。
どなたかC#でのAPI参考例を教えていただけないでしょうか?
<商品登録API ヘルプ>
http://api.qoo10.jp/GMKT.INC.Front.OpenApiService/APIList/guideindex.aspx
宜しくお願い致します。
追記
教えていただいたURLを参考に作成し試してみましたが同様の結果でした。
StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Cache-Control: private Date: Sat, 08 Aug 2020 09:04:33 GMT Server: Microsoft-IIS/8.5 X-Powered-By: ASP.NET Content-Length: 35 Content-Type: text/plain; charset=utf-8 }}
public static bool SetNewGoods(RequestNewGoods clsRequest) { try { Dictionary<string, string> dictParam; dictParam = new Dictionary<string, string>(); dictParam.Add("key", clsRequest.key); dictParam.Add("SecondSubCat", clsRequest.SecondSubCat.ToString()); if (0 != clsRequest.BrandNo) { dictParam.Add("BrandNo", clsRequest.BrandNo.ToString()); } dictParam.Add("ItemTitle", clsRequest.ItemTitle); dictParam.Add("SellerCode", clsRequest.SellerCode); dictParam.Add("AudultYN", clsRequest.AudultYN); dictParam.Add("StandardImage", clsRequest.StandardImage); dictParam.Add("ItemDescription", clsRequest.ItemDescription); dictParam.Add("RetailPrice", 0.ToString()); dictParam.Add("ItemPrice", clsRequest.ItemPrice.ToString()); dictParam.Add("ItemQty", clsRequest.ItemQty.ToString()); dictParam.Add("ExpireDate", clsRequest.ExpireDate); dictParam.Add("ShippingNo", clsRequest.ShippingNo.ToString()); dictParam.Add("AvailableDateType", clsRequest.AvailableDateType.ToString()); dictParam.Add("AvailableDateValue", clsRequest.AvailableDateValue); HttpClient clsHttpClient; HttpResponseMessage clsResponceMsg; FormUrlEncodedContent clsContent; string strUrl; clsContent = new FormUrlEncodedContent(dictParam); strUrl = "http://api.qoo10.jp/GMKT.INC.Front.OpenApiService/GoodsBasicService.api/SetNewGoods"; clsHttpClient = new HttpClient(); clsResponceMsg = clsHttpClient.PostAsync(strUrl, clsContent).Result; return true; } catch (Exception ex) { return false; } }
回答2件
あなたの回答
tips
プレビュー