标签: api

JSONDecodeError:期望值:第1行第1列(char 0)

Expecting value: line 1 column 1 (char 0)在尝试解码JSON 时遇到错误.

我用于API调用的URL在浏览器中工作正常,但在通过curl请求完成时会出现此错误.以下是我用于curl请求的代码.

错误发生在 return simplejson.loads(response_json)

    response_json = self.web_fetch(url)
    response_json = response_json.decode('utf-8')
    return json.loads(response_json)


def web_fetch(self, url):
        buffer = StringIO()
        curl = pycurl.Curl()
        curl.setopt(curl.URL, url)
        curl.setopt(curl.TIMEOUT, self.timeout)
        curl.setopt(curl.WRITEFUNCTION, buffer.write)
        curl.perform()
        curl.close()
        response = buffer.getvalue().strip()
        return response
Run Code Online (Sandbox Code Playgroud)

完全追溯:

追溯:

File "/Users/nab/Desktop/myenv2/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/Users/nab/Desktop/pricestore/pricemodels/views.py" in view_category
  620.     apicall=api.API().search_parts(category_id= str(categoryofpart.api_id), manufacturer = manufacturer, filter = filters, start=(catpage-1)*20, limit=20, sort_by='[["mpn","asc"]]')
File "/Users/nab/Desktop/pricestore/pricemodels/api.py" in search_parts
  176.         return simplejson.loads(response_json) …
Run Code Online (Sandbox Code Playgroud)

python api json curl

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

使用python向RESTful API发出请求

我有一个RESTful API,我使用EC2实例上的Elasticsearch实现来公开内容语料库.我可以通过从终端(MacOSX)运行以下命令来查询搜索:

curl -XGET 'http://ES_search_demo.com/document/record/_search?pretty=true' -d '{
  "query": {
    "bool": {
      "must": [
        {
          "text": {
            "record.document": "SOME_JOURNAL"
          }
        },
        {
          "text": {
            "record.articleTitle": "farmers"
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "from": 0,
  "size": 50,
  "sort": [],
  "facets": {}
}'
Run Code Online (Sandbox Code Playgroud)

我如何使用python/requestspython/urllib2(不确定要使用哪一个 - 使用urllib2,但听到请求更好......)将上面变成API请求?我是否以标题或其他方式传递?

python api rest elasticsearch

194
推荐指数
4
解决办法
54万
查看次数

如何在不使用Firebase控制台的情况下发送Firebase云消息传递通知?

我开始使用新的Google服务进行通知Firebase Cloud Messaging.

感谢此代码https://github.com/firebase/quickstart-android/tree/master/messaging我能够将Firebase用户控制台的通知发送到我的Android设备.

是否有任何API或方式可以在不使用Firebase控制台的情况下发送通知?我的意思是,例如,PHP API或类似的东西,直接从我自己的服务器创建通知.

php api android firebase firebase-cloud-messaging

188
推荐指数
9
解决办法
27万
查看次数

为移动应用程序创建API - 身份验证和授权

概观

我正在寻找为我的应用程序创建(REST)API.初始/主要目的是供移动应用程序(iPhone,Android,Symbian等)使用.我一直在研究基于Web的API的身份验证和授权的不同机制(通过研究其他实现).我已经掌握了大部分基本概念,但我仍在寻找一些领域的指导.我想做的最后一件事就是重新发明轮子,但我找不到任何符合我标准的标准解决方案(不过我的标准是我的误导,所以也可以随意批评).此外,我希望API对于使用它的所有平台/应用程序都是相同的.

OAuth的

我会继续向oAuth抛弃我的反对意见,因为我知道这可能是第一个提供的解决方案.对于移动应用程序(或更具体地说是非Web应用程序),离开应用程序(转到Web浏览器)进行身份验证似乎是错误的.此外,没有办法(我知道)浏览器将回调返回给应用程序(特别是跨平台).我知道有几个应用程序可以做到这一点,但它只是感觉不对,并且在应用程序用户体验中取得了突破.

要求

  1. 用户在应用程序中输入用户名/密码
  2. 每个API调用都由调用应用程序标识.
  3. 开销保持在最低限度,auth方面对开发人员来说非常直观.
  4. 该机制对于最终用户(他们的登录凭证未公开)以及开发人员(他们的应用程序凭证未公开)都是安全的.
  5. 如果可能,不要求https(绝不是硬性要求).

我目前对实施的看法

外部开发人员将请求API帐户.他们将得到一个apikey和apisecret.每个请求至少需要三个参数.

  • apikey - 在注册时交给开发人员
  • timestamp - 兼作给定apikey的每条消息的唯一标识符
  • hash - 时间戳的哈希值+ apisecret

需要apikey来识别发出请求的应用程序.时间戳的作用与oauth_nonce类似,可以避免/减轻重放攻击.哈希确保请求实际是从给定apikey的所有者发出的.

对于经过身份验证的请求(代表用户完成的请求),我仍然未决定使用access_token路由或用户名和密码哈希组合.无论哪种方式,在某些时候都需要用户名/密码组合.因此,当它发生时,将使用几条信息(apikey,apisecret,timestamp)+密码的散列. 我喜欢这方面的反馈. 仅供参考,他们必须首先对密码进行哈希处理,因为我没有在没有散列的情况下将密码存储在我的系统中.

结论

仅供参考,这不是要求如何构建/构建API,一般只是如何仅在应用程序内处理身份验证和授权.

随机思考/奖金问题

对于只需要apikey作为请求的一部分的API,如何防止apikey所有者以外的其他人能够看到apikey(因为明确发送)并过多地请求推送它们超过使用限制?也许我只是在想这个,但是不应该有一些东西需要验证是否已向apikey所有者验证了请求?在我的情况下,这是apisecret的目的,它不会被显示/传输而不被散列.

说到哈希,md5和hmac-sha1怎么样?当所有值都用足够长的数据(即apisecret)进行散列时,这真的很重要吗?

我之前一直在考虑为用户密码哈希添加每用户/行盐.如果我这样做,应用程序如何能够在不知道使用的盐的情况下创建匹配的哈希?

authentication api rest oauth mobile-application

187
推荐指数
5
解决办法
6万
查看次数

REST API身份验证

我正在构建一个将托管在服务器上的应用程序.我想为应用程序构建一个API,以便于与任何平台(Web App,Mobile App)进行交互.我不理解的是,在使用REST API时,我们如何对用户进行身份验证.

例如,当用户已登录然后想要创建论坛主题时.我怎么知道用户已经登录?

api rest

180
推荐指数
4
解决办法
20万
查看次数

API和SDK之间的区别

我试图向非开发人员解释API和SDK之间的区别.我需要解释为什么商业指纹软件供应商可能不会提供SDK,尽管他们肯定会使用一个.

设备供应商和软件供应商都可以而且应该公开定义良好的API.该API允许其他软件程序(被编写)与供应商自己的软件组件或硬件设备互操作.

如果有人有更多的想法来清楚地解释这一点,我将非常感谢这些建议.我想强调的是,目标是向不懂开发人员术语的非程序员解释这些概念.

具体来说,在指纹传感器与软件进行注册/验证的情况下,以下是我尝试解释它的方法:

如果我是指纹设备/传感器制造商而不是编写软件的业务,那么我可以更好地推广我的产品的方法是:

  1. 确保我的设备驱动程序可以安装在各种操作系统上
  2. 为软件开发人员定义并提供API,以编写程序(例如,用于注册,验证)以"交谈"或使用我的设备
  3. 开发并提供SDK(超出API的一步),使软件开发人员能够更轻松,更快速地编写适用于我的设备的程序.SDK可以提供帮助程序代码库,参考应用程序,文档等.

api sdk

179
推荐指数
7
解决办法
19万
查看次数

在尝试访问HTTPS网址时如何使用cURL处理证书?

我使用curl得到以下错误:

curl: (77) error setting certificate verify locations:
  CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none

如何设置此证书验证位置?谢谢.

api https curl

178
推荐指数
13
解决办法
17万
查看次数

API和ABI之间的区别

我是linux系统编程的新手,在阅读Linux系统编程时遇到了API和ABI .

API的定义:

API定义了一个软件在源级别与另一个软件通信的接口.

ABI的定义:

API定义源接口,而ABI定义特定体系结构上两个或多个软件之间的低级二进制接口.它定义了应用程序如何与自身交互,应用程序如何与内核交互以及应用程序如何与库交互.

程序如何在源级别进行通信?什么是源级别?它无论如何都与源代码有关?或者库的源代码包含在主程序中?

我所知道的唯一区别是API主要由程序员使用,而ABI主要由编译器使用.

api abi

176
推荐指数
8
解决办法
5万
查看次数

REST API登录模式

我正在创建一个REST api,密切关注apigee建议,使用名词不是动词,api版本加入url,每个集合有两个api路径,GET POST PUT DELETE用法等.

我正在登录系统,但不确定正确的REST方式登录用户.我现在不是在处理安全问题,只是登录模式或流程.(稍后我们将添加2步oAuth,HMAC等)

可能的选择

  • 一个像什么的POST https://api...com/v1/login.json
  • 一个像PUT的东西 https://api...com/v1/users.json
  • 我还没有......

登录用户的正确REST样式是什么?

api rest design-patterns

175
推荐指数
3
解决办法
14万
查看次数

有没有办法通过服务器端API将事件发布到Google Analytics?

我正在尝试通过向我们的后端系统发布事件来使用Google Analytics.有没有办法在服务器端使用GA的API?

api analytics google-analytics

171
推荐指数
3
解决办法
7万
查看次数