2017-02-04 8 views
0

したがって、サーバーからJSONレスポンスを取得しようとしていますthis api 問題は、ウェブサイトのhomepageのhtmlコードが返されることです。あなたがapiページを見ると、それはいくつかのjsonを返すべきだと言います。 私のコードには何か問題があると思います。HTTP PostはJSONレスポンスの代わりにウェブサイト全体を返します

提案がありますか? anime picture

私のコードを:使用して

画像IM

 static void Main(string[] args) 
    { 
     Image img = Image.FromFile("image.jpg"); 
     String base64 = ImageToBase64(img, System.Drawing.Imaging.ImageFormat.Jpeg); 

     var request = (HttpWebRequest)WebRequest.Create("http://www.whatanime.ga/api/search?token=<token>"); 

     var postData = base64; 
     var data = Encoding.UTF8.GetBytes(postData); 

     request.Method = "POST"; 
     request.ContentType = "application/x-www-form-urlencoded"; 

     using (var stream = request.GetRequestStream()) 
     { 
      stream.Write(data, 0, data.Length); 
     } 

     var response = (HttpWebResponse)request.GetResponse(); 

     var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 

     Console.WriteLine("data:" + responseString); 
     Console.ReadLine(); 
    } 

    public static string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format) 
    { 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      image.Save(ms, format); 
      byte[] imageBytes = ms.ToArray(); 

      string base64String = Convert.ToBase64String(imageBytes); 
      return base64String; 
     } 
    } 
+1

実際には重要なものhttp://www.whatanime.ga/api/search?token=返信 –

+0

apiページを見て、あまりにも長く投稿してください。トークンが無効な場合はエラー403を返し、トークンが無効の場合はエラー401を返します。 –

+0

トークンが有効であれば、それは何を返しますか? –

答えて

1

オーケーいくつかは、私は(私のために)の作業を見つけた他のオプションをいじった後、ソリューション 私は助けるためにこれを掲示しています将来同じ問題を抱える人

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.IO; 
using System.Net.Http; 
using System.Drawing; 
using System.Net; 
using System.Collections.Specialized; 

namespace ConsoleApplication3 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     Image img = Image.FromFile("image.jpg"); 
     String base64 = ImageToBase64(img, System.Drawing.Imaging.ImageFormat.Jpeg); 

     using (var client = new WebClient()) 
     { 
      var values = new NameValueCollection(); 
      values["image"] = base64; 
      var response = client.UploadValues("https://whatanime.ga/api/search?token=<token>", values); 
      var responseString = Encoding.Default.GetString(response); 
      Console.WriteLine("data: " + responseString); 
      Console.ReadLine(); 
     } 
    } 

    public static string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format) 
    { 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      image.Save(ms, format); 
      byte[] imageBytes = ms.ToArray(); 

      string base64String = Convert.ToBase64String(imageBytes); 
      return base64String; 
     } 
    } 
} 
1

私はあなたがイメージ

何か

using (WebClient client = new WebClient()) 
{ 
    response = client.UploadValues("http://www.whatanime.ga/api/search?token=<token>", 
     new NameValueCollection() {{ "image", base64 } 
    }); 
} 

このような終わりが

応答状態を読み提供するために、鍵のペアの値を提供する必要がマニュアルに

POST /api/search?token={your_api_token} HTTP/1.1 
Content-Type: application/x-www-form-urlencoded; charset=UTF-8 
Host: whatanime.ga 

image={Base64 Encoded Image} 

を読んで

Returns HTTP 403 if API token is invalid. 

Returns HTTP 401 if API token is missing. 

Note that there is a hard limit of 1MB post size. You should ensure your Base64 encoded image is < 1MB. Otherwise the server responds with HTTP 413 (Request Entity Too Large). 
関連する問題