-- 请求示例 url 默认请求参数已经URL编码处理
curl -i "https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page="
<?php
// 请求示例 url 默认请求参数已经URL编码处理
// 本示例代码未加密secret参数明文传输,若要加密请参考:https://open.fan-b.com/help/demo/sdk/demo-sign.php
$method = "GET";
$url = "https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=";
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
var_dump(curl_exec($curl));
?>
<?php
//定义缓存目录和引入文件
define("DIR_RUNTIME","runtime/");
define("DIR_ERROR","runtime/");
define("SECACHE_SIZE","0");
//SDK下载地址 https://open.fan-b.com/help/demo/sdk/onebound-api-sdk.zip
include ("ObApiClient.php");
$obapi = new otao\ObApiClient();
$obapi->api_url = "http://api-gw.fan-b.com/";
$obapi->api_urls = array("http://api-gw.fan-b.com/","http://api-1.fan-b.com/");//备用API服务器
$obapi->api_urls_on = true;//当网络错误时,是否启用备用API服务器
$obapi->api_key = "<您自己的apiKey>";
$obapi->api_secret = "<您自己的apiSecret>";
$obapi->api_version ="";
$obapi->secache_path ="runtime/";
$obapi->secache_time ="86400";
$obapi->cache = true;
$api_data = $obapi->exec(
array(
"api_type" =>"ickey",
"api_name" =>"category_search",
"api_params"=>array (
'types' => 'category',
'pid' => 'Semiconductor01',
'page' => '',
)
)
);
var_dump($api_data);
?>
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.PrintWriter;
import java.net.URLConnection;
public class Example {
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print(body);
out.flush();
InputStream instream = conn.getInputStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
instream.close();
}
}
public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
InputStream instream = conn.getInputStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
instream.close();
}
}
public static void main(String[] args) throws IOException, JSONException {
// 请求示例 url 默认请求参数已经URL编码处理
String url = "https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=";
JSONObject json = getRequestFromUrl(url);
System.out.println(json.toString());
}
}
//using System.Net.Security;
//using System.Security.Cryptography.X509Certificates;
private const String method = "GET";
static void Main(string[] args)
{
String bodys = "";
// 请求示例 url 默认请求参数已经做URL编码
String url = "https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=";
HttpWebRequest httpRequest = null;
HttpWebResponse httpResponse = null;
if (url.Contains("https://"))
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
}
else
{
httpRequest = (HttpWebRequest)WebRequest.Create(url);
}
httpRequest.Method = method;
if (0 < bodys.Length)
{
byte[] data = Encoding.UTF8.GetBytes(bodys);
using (Stream stream = httpRequest.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
try
{
httpResponse = (HttpWebResponse)httpRequest.GetResponse();
}
catch (WebException ex)
{
httpResponse = (HttpWebResponse)ex.Response;
}
Console.WriteLine(httpResponse.StatusCode);
Console.WriteLine(httpResponse.Method);
Console.WriteLine(httpResponse.Headers);
Stream st = httpResponse.GetResponseStream();
StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
Console.WriteLine(reader.ReadToEnd());
Console.WriteLine("\n");
}
public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
}
# coding:utf-8
"""
Compatible for python2.x and python3.x
requirement: pip install requests
"""
from __future__ import print_function
import requests
# 请求示例 url 默认请求参数已经做URL编码
url = "https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page="
headers = {
"Accept-Encoding": "gzip",
"Connection": "close"
}
if __name__ == "__main__":
r = requests.get(url, headers=headers)
json_obj = r.json()
print(json_obj)
url := fmt.Sprintf("https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=", params)
req, err := http.NewRequest("GET", url, nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", apiKey)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
fetch('https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({"types":"category","pid":"Semiconductor01","page":""})// request parameters here
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
<script src="js/obapi.js"></script>
<script type="text/javascript">
obAPI.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
api_url: "https://api-gw.fan-b.com", //
api_key: "<您自己的apiKey>", // 必填,
api_secret: "<您自己的apiSecret>", //
lang: "cn", //
timestamp: "", // 必填,生成签名的时间戳
nonceStr: "", // 必填,生成签名的随机串
signature: "",// 必填,签名
jsApiList: [] // 必填,需要使用的JS接口列表
});
</script>
<div id="api_data_box"></div>
<script type="text/javascript">
obAPI.exec(
{
"api_type":"ickey",
"api_name" : "category_search",
"api_params": {"types":"category","pid":"Semiconductor01","page":""}//types=category&pid=Semiconductor01&page=,#具体参数请参考文档说明
},
function(e){
document.querySelector("#api_data_box").innerHTML=JSON.stringify(e)
}
);
</script>
require "net/http"
require "uri"
url = URI("https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
import Foundation
let url = URL(string: "https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
guard let data = data else {
print("Error: No data was returned")
return
}
if let data = String(data: data, encoding: .utf8) {
print(data)
}
}
task.resume()
NSURL *myUrl = [NSURL URLWithString:@"https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page="];
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:myUrl cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0];
[request setHTTPMethod:@"GET"];
NSError *error;
NSURLResponse *response;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",result);
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include<curl/curl.h>
int main(){
CURL *curl;
CURLcode res;
struct curl_slist *headers=NULL;
char url[] = "https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=";
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL,url);
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK){
printf("curl_easy_perform(): %s\n",curl_easy_strerror(res));
}
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
#include<iostream>
#include<string>
#include<curl/curl.h>
using namespace std;
static size_t Data(void *ptr, size_t size, size_t nmemb, string *stream)
{
std::size_t realSize = size *nmemb;
auto *realPtr = reinterpret_cast<char *>(ptr);
for (std::size_t i=0;i<realSize;++i) {
*(stream) += *(realPtr + i);
}
return realSize;
}
int main(){
CURL *curl;
CURLcode result;
string readBuffer;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
result = curl_easy_perform(curl);
if(result == CURLE_OK) {
cout<<readBuffer<<endl;
}else{
cerr<<"curl_easy error:"<<curl_easy_strerror(result)<<endl;
}
curl_easy_cleanup(curl);
}
return 0;
}
const https = require("https");
https.get("https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=", (resp) => {
let data = "";
resp.on("data", (chunk) => {
data += chunk;
});
resp.on("end", () => {
console.log(data);
});
}).on("error", (err) => {
console.log("Error: " + err.message);
});
import java.net.HttpURLConnection
import java.net.URL
fun main() {
val url = URL("https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=")
val con = url.openConnection() as HttpURLConnection
con.requestMethod = "GET"
val responseCode = con.responseCode
if (responseCode == HttpURLConnection.HTTP_OK) { // success
val inputLine = con.inputStream.bufferedReader().use { it.readText() }
println(inputLine)
} else {
println("GET request failed")
}
}
use std::io::{self, Read};
use reqwest;
fn main() -> io::Result<()> {
let mut resp = reqwest::get("https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=")?;
let mut content = String::new();
resp.read_to_string(&mut content)?;
println!("{}", content);
Ok(())
}
library(httr)
r <- GET("https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=")
content(r)
url = "https://api-gw.fan-b.com/ickey/category_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&types=category&pid=Semiconductor01&page=";
response = webread(url);
disp(response);