标签: imgur

使用json.net反序列化没有类型信息的多态json类

Imgur api调用返回一个列表,其中包含json中表示的Gallery ImageGallery Album类.

我不知道如何使用Json.NET自动反序列化这些,因为没有$ type属性告诉反序列化器要表示哪个类.有一个名为"IsAlbum"的属性可用于区分两者.

这个问题似乎显示了一种方法,但它看起来有点像黑客.

我该如何反序列化这些类?(使用C#,Json.NET).

样本数据:

图库图片

{
    "id": "OUHDm",
    "title": "My most recent drawing. Spent over 100 hours.",
        ...
    "is_album": false
}
Run Code Online (Sandbox Code Playgroud)

画廊专辑

{
    "id": "lDRB2",
    "title": "Imgur Office",
    ...
    "is_album": true,
    "images_count": 3,
    "images": [
        {
            "id": "24nLu",
            ...
            "link": "http://i.imgur.com/24nLu.jpg"
        },
        {
            "id": "Ziz25",
            ...
            "link": "http://i.imgur.com/Ziz25.jpg"
        },
        {
            "id": "9tzW6",
            ...
            "link": "http://i.imgur.com/9tzW6.jpg"
        }
    ]
}
}
Run Code Online (Sandbox Code Playgroud)

}

c# serialization json.net imgur

66
推荐指数
2
解决办法
3万
查看次数

类型List不是通用的; 它不能用参数[HTTPClient]参数化

import java.awt.List;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStreamReader;
import java.util.ArrayList;

import javax.imageio.ImageIO;

import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.omg.DynamicAny.NameValuePair;

public class Upload {

    public static void main (String[] args) {

        System.out.println(Imgur("C:\\Users\\username\\Desktop\\image.jpg",     "clientID"));
    }

public static String Imgur (String imageDir, String clientID) {
    //create needed strings
    String address = "https://api.imgur.com/3/image";

    //Create HTTPClient and post
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost(address);

    //create base64 image
    BufferedImage …
Run Code Online (Sandbox Code Playgroud)

java api httpclient imgur

54
推荐指数
2
解决办法
11万
查看次数

从Mathematica上传图片到Imgur

这是对所有mathematica标记粉丝的挑战.让我们通过创建一个imgur上传器将图像插入到Mathematica的SO帖子中更加方便.

我们如何创建一个imgur[g_]将光栅化其参数的函数(确保最终大小不超过StackOverflow帖子的宽度),将其转换为PNG,将其上传到imgur,并返回准备粘贴的MarkDown行,如![Mathematica graphic](http://i.imgur.com/ZENa4.jpg)

有用的参考:

我没有调整后一种方法来上传图像而不先将其导出到文件中.


警告,小心使用!StackOverflow使用单独的imgur安装,可以无限期地保留图像.如果你使用主要的imgur,如果没有人看到它们,图像将在6个月后消失.不幸的是,截至2011年11月,似乎没有正式的方式以编程方式将图像上传到StackOverflow.


更新: 请参阅下面的解决方案,直接上传到StackOverflow .

post wolfram-mathematica jlink imgur

53
推荐指数
3
解决办法
3087
查看次数

在网站外托管图片有什么危害吗?

是否有任何损害通过像Imgur这样的网站托管图像,然后使用提供的代码将其插入我的网站?与在我的服务器上托管图像并适当链接它们的传统方式相比.

security hosting image imgur

21
推荐指数
3
解决办法
8751
查看次数

在Swift中使用标头发出HTTP请求

我正在尝试向Imgur API发出HTTP请求.我正在尝试检索与标签"cats"相关的所有图像.根据Imgur API,网址为:https://api.imgur.com/3/gallery/t/cats

Imgur API声明了以下有关获取请求所需的授权:

对于公共只读和匿名资源,例如获取图像信息,查找用户评论等,您只需要client_id在您的请求中发送授权标题.如果您想要匿名上传图像(图像
不附加到帐户),或者您想要创建匿名
相册,这也适用.这让我们知道哪个应用程序正在访问API.

Authorization: Client-ID YOUR_CLIENT_ID
Run Code Online (Sandbox Code Playgroud)

我看了下面的问题,并尝试了那里的建议,但没有一个有帮助.

带有凭据的JSON NSURLRequest

带参数的Swift GET请求

如何在Swift中创建一个Http get并设置httpHeader?

我目前的代码是这样的:

let string = "https://api.imgur.com/3/gallery/t/cats"
let url = NSURL(string: string)
let request = NSMutableURLRequest(URL: url!)
request.setValue("clientIDhere", forHTTPHeaderField: "Authorization")
//request.addValue("clientIDhere", forHTTPHeaderField: "Authorization")
request.HTTPMethod = "GET"
let session = NSURLSession.sharedSession()

let tache = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
    if let antwort = response as? NSHTTPURLResponse {
        let code = antwort.statusCode
        print(code)
    }
}
tache.resume() …
Run Code Online (Sandbox Code Playgroud)

imgur ios nsurlsession swift

16
推荐指数
2
解决办法
2万
查看次数

使用imgur api v3使用php匿名上传图像

我打算使用它的api匿名上传图像,我在匿名上传类别中注册了我的应用程序,并获得了客户端ID和客户端密码,如何使用php上传图像到imgur并检索到图像的直接URL?任何人都可以建议任何例子的链接?这是我试图做但我得到错误"致命错误:超过30秒的最大执行时间"

<?php

$client_id = :client_id; //put your api key here
$filename = "images/q401x74ua3402.jpg";
$handle = fopen($filename, "r");
$data = fread($handle, filesize($filename));

//$data is file data
$pvars   = array('image' => base64_encode($data), 'key' => $client_id);
$timeout = 30;
$curl    = curl_init();

curl_setopt($curl, CURLOPT_URL, 'https://api.imgur.com/3/upload.json');
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
$xml = curl_exec($curl);
$xmlsimple = new SimpleXMLElement($xml);
echo '<img height="180" src="';
echo $xmlsimple->links->original;
echo '">';

curl_close ($curl);

?>
Run Code Online (Sandbox Code Playgroud)

php api imgur

15
推荐指数
3
解决办法
1万
查看次数

Imgur API Version 3 JavaScript上传示例

我在网上找到的所有示例都是早期版本的Imgur API或非JS代码,所有这些都使用了新API中不存在的API密钥.相反,你得到一个client_idsecret.任何人都有示例代码,显示如何使用他们的API版本3通过JavaScript(或jQuery)将图像上传到Imgur?

javascript jquery imgur

14
推荐指数
1
解决办法
7991
查看次数

在imgur中图像粘贴如何在Firefox中运行?

  1. 打开图像编辑程序,复制图像(不要从浏览器复制 - 我将在后面解释原因).
  2. 打开Firefox并转到http://imgur.com
  3. Ctrl+V
  4. 在上传之前复制的图像完全令人惊讶.

我知道HTML5剪贴板API,它适用于Chrome.在Chrome中,当您粘贴二进制图像数据时,浏览器会触发一个paste包含event.clipboardData.types等于的事件['Files'],因此我可以将我的图像放在剪贴板中

var index = event.clipboardData.types.indexOf('Files');
if(index !== -1) {
    var blob = event.clipboardData.items[index].getAsFile();
}
Run Code Online (Sandbox Code Playgroud)

在Firefox中,当我粘贴二进制图像数据时,浏览器也会触发粘贴事件,但它event.clipboardData.types是空的(有length === 0)并且event.clipboardData.getData('Files')显然会返回"".

顺便说一下,从浏览器复制图像也会设置一个"text/html"项,clipboardData其中包含复制的<img>元素.因此,在这些情况下,我可以通过将远程URL发送到服务器来解决问题,然后服务器将自己下载图像(如果服务器可以访问远程位置,这是不能保证的).

StackOverflow建议: 如何从Firefox中的剪贴板获取数据 (创建一个contenteditable <div>,请用户粘贴到该剪贴板然后复制内容.)

但是,imgur不这样做.这是如何运作的?

javascript clipboard firefox html5 imgur

13
推荐指数
1
解决办法
2430
查看次数

POST 到外部 API 会抛出 CORS,但它可以从 Postman 工作

我正在使用 i mgur api通过节点 js 应用程序上传图像

我正在将图像转换为 base64 字符串并通过 Postman 发送它们效果很好。

node-fetch用来进行api调用。

const fetch = require('node-fetch')
...
async uploadImage(base64image) {
        try {
            const url = 'https://api.imgur.com/3/image'
            const res = await fetch(url,
                {
                    method: 'POST',
                    body: { image: base64image },
                    headers: {
                        'content-type': 'application/json',
                        'Authorization': 'Client-ID [my-client-id]',
                        'Access-Control-Allow-Headers': 'Content-Type, Authorization, Access-Control-Allow-Headers',
                        'Access-Control-Allow-Methods': 'POST',
                    }
                }
            )

            console.log(res)
        } catch(err) {
            console.log(err)
        }
    }
Run Code Online (Sandbox Code Playgroud)

错误:从源“ http://localhost:3000 ”获取“ https://api.imgur.com/3/image ”的访问已被 CORS 策略阻止:请求标头字段Access-Control-Allow-Headers为预检响应中的Access-Control-Allow-Headers 不允许。 …

javascript node.js imgur cors node-fetch

13
推荐指数
2
解决办法
3万
查看次数

什么是"授权回调网址?" 对于imgur以及我的应该是什么?

我正在尝试编写一个程序,将图像上传到imgur并返回url.我想开始尝试使用api,但要注册我的客户端ID,其中一个必填字段是"授权回调网址".描述说"回调URL用于确定Imgur在授权您的访问请求后重定向用户的位置......"

我的程序将在java的命令行中,或者也许是一个android应用程序.根据我的理解(这可能是错误的),这对于Web应用程序很有用,但是对于api的一般使用,似乎没有任何帮助.特别是如果我在命令行工作.是否有"默认"网址或我可以放入的内容?或者我误解了回调网址的目的?

java imgur callbackurl

12
推荐指数
1
解决办法
9257
查看次数