0

開発中のウェブ アプリケーションを使用して、Etsy アカウントに新しい商品情報とともに画像を追加しようとしています。現在、私は使用しています:

RestRequest request = new RestRequest("listings", Method.POST);

request.AddFile("image", ReadToEnd(o.mainPhoto), "test.bmp", "image/bmp");
request.AddParameter("image", "test.bmp");

request.AddParameter("title", "This is a test");
request.AddParameter("description", "Test Description");
request.AddParameter("status", "draft");
request.AddParameter("quantity", "1");    
request.AddParameter("price", "5");
request.AddParameter("is_supply", "false");
request.AddParameter("category_id", "68887420");
request.AddParameter("when_made", "2013");
request.AddParameter("who_made", "i_did");
request.AddParameter("shipping_template_id", 5463224); 
var etsyResponse = restClient.Execute<EtsyListing>(request);

画像がないことを除けば、リストは正しく作成されています。

etsyResponse には、画像用に作成された「tmp_name」を含む、アップロードされた画像に関する情報 (サイズ、名前など) を含むコンテンツがあることに気付きました。アップロードされたファイルの名前ではなく、etsyResponse からの「tmp_name」にリストを関連付ける必要がありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

私は実際にまったく同じ問題を抱えていました。RestSharp で C# サーバー側ハンドラーを使用して、HttpPostedFile インスタンスからの画像データを含む新しいリストを投稿しています。下書きリストは問題なく作成されましたが、画像はありません。あなたが言ったように、イメージが作成されたことを示唆しているように見える tmp_name とエラーの値を見ました。実験した後、うまく機能した私の最終的な解決策は次のとおりです。

  1. 画像ファイルなしで新しいリストを作成します。
  2. 応答から新しいリストの listing_id 値を取得します。
  3. リソースへの 2 番目の呼び出しを POST します - ("listings/[YOUR NEW LISTING'S ID]/images")。このリクエストに画像ファイルを追加します。また、ランク パラメータを追加して、画像の表示順序を制御します。

お役に立てれば。

于 2014-12-15T22:18:15.027 に答える