运势查询
请求Header:
名称 | 值 | |
---|---|---|
Content-Type | application/x-www-form-urlencoded |
请求参数说明:
名称 | 必填 | 类型 | 说明 | |
---|---|---|---|---|
key | 是 | string | 在个人中心->我的数据,接口名称上方查看 | |
consName | 是 | string | 星座名称,如:双鱼座 | |
type | 是 | string | 运势类型:today,tomorrow,week,month,year |
请求代码示例:
curl -k -i -d "key=您申请的AppKey&consName=狮子座&type=today" http://web.juhe.cn/constellation/getAll
<?php
$url = "http://web.juhe.cn/constellation/getAll";
$params = [
"key" => "您申请的AppKey", # 在个人中心->我的数据,接口名称上方查看
"consName" => "狮子座", # 星座名称,如:狮子座
"type" => "today", # 运势类型:today,tomorrow,week,month,year
];
$paramsStr = http_build_query($params);
$headers = ["Content-Type" => "application/x-www-form-urlencoded"];
$content = httpRequest($url, $paramsStr,0,$headers);
$result = json_decode($content, true);
if ($result) {
var_dump($result);
// 具体返回示例值,参考返回参数说明、json返回示例
} else {
// 请求异常
}
/**
*
* 发起请求
* @param $url
* @param string $dataStr
* @param int $isPost
* @return bool|string
*/
function httpRequest($url, $dataStr = "", $isPost = 0,$headers=[])
{
$httpInfo = [];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 请求头
if (!empty($headers)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
// 跳过证书检查
if (strtolower(mb_substr($url,0,8,"utf-8")) == "https://") {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
}
if ($isPost) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataStr);
curl_setopt($ch, CURLOPT_URL, $url);
} else {
curl_setopt($ch, CURLOPT_URL, $url . "?" . $dataStr);
}
//echo $url."?".$dataStr;
$response = curl_exec($ch);
if ($response === false) {
//echo "cURL Error: " . curl_error($ch);
return false;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$httpInfo = array_merge($httpInfo, curl_getinfo($ch));
curl_close($ch);
return $response;
}
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import requests
import json
headers ={"Content-Type": "application/x-www-form-urlencoded"}
url = "http://web.juhe.cn/constellation/getAll"
params = {
"key":"您申请的AppKey", # 在个人中心->我的数据,接口名称上方查看
"consName":"狮子座", # 星座名称,如:狮子座
"type":"today", # 运势类型:today,tomorrow,week,month,year
}
resp = requests.get(url,params,headers=headers)
resp_json = json.loads(resp.text)
print(resp_json)
# 具体返回示例值,参考返回参数说明、json返回示例
package main
import (
"fmt"
"io"
"net/http"
"net/url"
"strings"
"time"
)
func main() {
// 接口请求地址
url := "http://web.juhe.cn/constellation/getAll"
// 接口请求参数
params := map[string]string{
"key":"您申请的AppKey", // 在个人中心->我的数据,接口名称上方查看
"consName":"狮子座", // 星座名称,如:狮子座
"type":"today", // 运势类型:today,tomorrow,week,month,year
}
// 请求头设置
headers := map[string]string{
"Content-Type": "application/x-www-form-urlencoded",
}
response, err := HttpRequest("GET", url, params, headers, 15)
if err != nil {
fmt.Println("请求异常:", err.Error())
} else {
fmt.Println("请求结果:", response)
}
// 具体返回示例值,参考返回参数说明、json返回示例
}
// http请求发送
func HttpRequest(method, rawUrl string, bodyMaps, headers map[string]string, timeout time.Duration) (result string, err error) {
var (
request *http.Request
response *http.Response
res []byte
)
if timeout <= 0 {
timeout = 5
}
client := &http.Client{
Timeout: timeout * time.Second,
}
// 请求的 body 内容
data := url.Values{}
for key, value := range bodyMaps {
data.Set(key, value)
}
jsons := data.Encode()
if request, err = http.NewRequest(method, rawUrl, strings.NewReader(jsons)); err != nil {
return
}
if method == "GET" {
request.URL.RawQuery = jsons
}
// 增加header头信息
for key, val := range headers {
request.Header.Set(key, val)
}
// 处理返回结果
if response, err = client.Do(request); err != nil {
return "", err
}
defer response.Body.Close()
if res, err = io.ReadAll(response.Body); err != nil {
return "", err
}
return string(res), nil
}
//node request模块安装命令:npm install request
var request = require("request");
var querystring = require("querystring");
const options = {
url: "http://web.juhe.cn/constellation/getAll",
method: "GET", // GET|POST
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
// GET 传递此参数
qs:{
key: "您申请的AppKey", // 在个人中心->我的数据,接口名称上方查看
consName: "狮子座", // 星座名称,如:狮子座
type: "today", // 运势类型:today,tomorrow,week,month,year
},
// POST 传递此参数
body: querystring.stringify({
key: "您申请的AppKey", // 在个人中心->我的数据,接口名称上方查看
consName: "狮子座", // 星座名称,如:狮子座
type: "today", // 运势类型:today,tomorrow,week,month,year
})
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body); // 请求成功,输出响应内容
// 具体返回示例值,参考返回参数说明、json返回示例
} else {
console.log("请求异常");
}
});
import net.sf.json.JSONObject;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Map;
import java.util.HashMap;
public class ApiDemo {
public static void main(String[] args) {
// 发送http请求的url
String url = "http://web.juhe.cn/constellation/getAll";
Map<String, String> params = new HashMap<String, String>();
params.put("key", "您申请的AppKey"); // 在个人中心->我的数据,接口名称上方查看
params.put("consName", "狮子座"); // 星座名称,如:狮子座
params.put("type", "today"); // 运势类型:today,tomorrow,week,month,year
String paramsStr = urlencode(params);
System.out.println(paramsStr);
String response = doGet(url,paramsStr);
// // post请求
// String response = doPost(url,paramsStr);
// 输出请求结果
System.out.println(response);
try {
// 解析请求结果,json:
JSONObject jsonObject = JSONObject.fromObject(response);
System.out.println(jsonObject);
// 具体返回示例值,参考返回参数说明、json返回示例
} catch (Exception e) {
e.printStackTrace();
}
}
// 将map型转为请求参数型
public static String urlencode(Map<String, String> data) {
StringBuilder sb = new StringBuilder();
for (Map.Entry i : data.entrySet()) {
try {
sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue() + "", "UTF-8")).append("&");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return sb.toString();
}
/**
* get方式的http请求
*
* @param httpUrl 请求地址
* @param paramStr 请求参数
* @return 返回结果
*/
public static String doGet(String httpUrl,String paramStr) {
HttpURLConnection connection = null;
InputStream inputStream = null;
BufferedReader bufferedReader = null;
String result = null;// 返回结果字符串
try {
httpUrl += "?"+paramStr;
// 创建远程url连接对象
URL url = new URL(httpUrl);
// 通过远程url连接对象打开一个连接,强转成httpURLConnection类
connection = (HttpURLConnection) url.openConnection();
// 设置连接方式:get
connection.setRequestMethod("GET");
// 设置连接主机服务器的超时时间:15000毫秒
connection.setConnectTimeout(15000);
// 设置读取远程返回的数据时间:60000毫秒
connection.setReadTimeout(60000);
// 设置请求头
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// 发送请求
connection.connect();
// 通过connection连接,获取输入流
if (connection.getResponseCode() == 200) {
inputStream = connection.getInputStream();
// 封装输入流,并指定字符集
bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
// 存放数据
StringBuilder sbf = new StringBuilder();
String temp;
while ((temp = bufferedReader.readLine()) != null) {
sbf.append(temp);
sbf.append(System.getProperty("line.separator"));
}
result = sbf.toString();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (null != bufferedReader) {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != inputStream) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (connection != null) {
connection.disconnect();// 关闭远程连接
}
}
return result;
}
/**
* post方式的http请求
*
* @param httpUrl 请求地址
* @param paramStr 请求参数
* @return 返回结果
*/
public static String doPost(String httpUrl, String paramStr) {
HttpURLConnection connection = null;
InputStream inputStream = null;
OutputStream outputStream = null;
BufferedReader bufferedReader = null;
String result = null;
try {
URL url = new URL(httpUrl);
// 通过远程url连接对象打开连接
connection = (HttpURLConnection) url.openConnection();
// 设置连接请求方式
connection.setRequestMethod("POST");
// 设置连接主机服务器超时时间:15000毫秒
connection.setConnectTimeout(15000);
// 设置读取主机服务器返回数据超时时间:60000毫秒
connection.setReadTimeout(60000);
// 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
connection.setDoOutput(true);
// 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// 通过连接对象获取一个输出流
outputStream = connection.getOutputStream();
// 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
outputStream.write(paramStr.getBytes());
// 通过连接对象获取一个输入流,向远程读取
if (connection.getResponseCode() == 200) {
inputStream = connection.getInputStream();
// 对输入流对象进行包装:charset根据工作项目组的要求来设置
bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
StringBuilder sbf = new StringBuilder();
String temp;
// 循环遍历一行一行读取数据
while ((temp = bufferedReader.readLine()) != null) {
sbf.append(temp);
sbf.append(System.getProperty("line.separator"));
}
result = sbf.toString();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (null != bufferedReader) {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != outputStream) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != inputStream) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (connection != null) {
connection.disconnect();
}
}
return result;
}
}
返回参数说明:
名称 | 类型 | 说明 | |
---|---|---|---|
error_code | int | 返回码 | |
reason | string | 返回说明 |
JSON返回示例:JSON在线格式化工具 >
/*今日或明日运势格式*/
{
"name": "狮子座",/*星座名称*/
"datetime": "2014年06月27日",/*日期*/
"date": 20140627,
"all": "89", /*综合指数*/
"color": "古铜色", /*幸运色*/
"health": "95", /*健康指数*/
"love": "80",/*爱情指数*/
"money": "84",/*财运指数*/
"number": 8,/*幸运数字*/
"QFriend": "处女座",/*速配星座*/
"summary": "有些思考的小漩涡,可能让你忽然的放空,生活中许多的细节让你感触良多,五味杂陈,
常常有时候就慢动作定格,想法在某处冻结停留,陷入一阵自我对话的沉思之中,这个时候你不喜欢被打扰
或询问,也不想让某些想法曝光,个性变得有些隐晦。",/*今日概述*/
"work": "80"/*工作指数*/
"error_code": 0/*返回码*/
}
/*本周运势格式*/
{
"name": "白羊座",
"date": "2014年06月29日-2014年07月05日",
"weekth": 27,
"health": "一些白羊座会面临偏头痛、头晕的情况,有可能是劳累过度,也有可能是颈椎负担太大,要注意多多休息",/*健康运势*/
"job": "水逆在本周结束,之前耽误、错过的出现弥补机会。职场进入休整状态,有调部门或岗位
的可能",
"love": "恋情:之前积累的想法和感受,本周选择说出来。沟通机会增多,亦有可能以争吵的方式出现。
单身的,在聚会闲谈中可望获得更多缘分。",
"money": "财运:虽有自己的理财想法,但总体受控于家人或家族的财务计划。受木星支撑,有机会得到
家人的支援。但是土逆仍然显示你有债务加大的风险。置业房产出现时机,较大可能是家人出首期,你来月
供。",
"work": "工作:水逆在本周结束,之前耽误、错过的出现弥补机会。职场进入休整状态,有调部门或岗位
的可能。",
"resultcode": "200",
"error_code": 0
}
/*本年运势*/
{
"name":"白羊座",
"date":"2016年",
"year":2016,
"resultcode":"200",
"error_code":0,
"mima":{/*年度密码*/
"info":"变身完成的调整之年",/*概述*/
"text":[/*说明*/
"2016年将会是白羊座暂时放缓节奏,开始调整个人生活作息以及细分工作内容的一年。土星
来到射手座对白羊座而言实际属于利好,让你们可以更加客观地看待当下面临的问题,并根据现状调整预
期,为今后相当长一段时间(可能影响未来10年)做好最合适的计划和目...
]
},
"career":[/*事业运*/
"土星的移位意味着你们的工作重心会有所转移,从前的忙乱筹备已经落实到目标更加明确的层
面。对创业者而言,前景目标相对比较明确,只要按预期计划踏踏实实执行下去就可以。你也可以将更多精
力投入于长远规划以及专业研究、发行出版、异域涉外等方面去,都会获得行业认可的业绩,在相关行业崭
露头角,奠定行业地位。自由职业者则有机会产出一些惊为天人的作品,叫.....
],
"love":[/*感情运*/
"上半年,木星仍然停留在白羊座的恋爱宫,感情将继续精彩纷呈,尤其容易与旧人擦出火花,展
开异地恋情,同学聚会及老友聚会都是桃花高爆区域,也要小心计划外怀孕。单身人士不乏追求对象,尤其
在3月间可能出现让自己一见钟情的人,但极有可能只是昙花一现的惊心动魄,更像是一场因果牵引的缘分重
聚。4月上旬到中旬则是另一个值得注意的时段,有对象的个人在这两段时间都容....
],
"finance":[/*财运*/
"上半年木星落在投资宫,会给你们带来很好的偏财运。但年后开始的一个月,.......
],
}
/*本月运势*/
{
"date":"2016年12月",/*日期*/
"name":"白羊座",/*名称*/
"all":"本月运势有两个重要的节点,一个是在上旬,水星进入事业宫,更加关注事业发展,目标性加
强;而金星随之离开事业宫,原先的经验不能再为你赢得加分,反而是人脉上。。。",/*综合运势*/
"happyMagic":"",
"health":"上旬和中旬,运动能量高,适合开展锻炼计划,尤其是练习耐力的运动。下旬,水逆开启,出行要小心意外了。/*健康运势*/
"love":"现实的比较太累,你更喜欢朋友式的轻松相处,如果和爱人之间做不到,你会更眷恋友人的陪
伴。因而本月“友情已达,恋人未满”的状况,会有更大的发生几率。/*爱情运势*/
"money":"人际生财,多往人气旺的地方是有利打听到财富资讯,广开财路的。虽然人际开销也会增多
,但可以当做是投资。/*财运运势*/
"month":12,/*月份*/
"work":"本月的目标性和计划性都很强,两个阶段的区别在于行动力。上旬和中旬,行动力分散,下
旬,行动力足够,但受水逆影响,意外多。/*工作运势*/
"resultcode":"200",
"error_code":0
}
服务级错误码参照(error_code):
错误码 | 说明 | |
---|---|---|
205801 | 错误的运势类型 | |
205802 | 错误的星座名称 |
系统级错误码参照:
错误码 | 说明 | 旧版本(resultcode) | |
---|---|---|---|
10001 | 错误的请求KEY | 101 | |
10002 | 该KEY无请求权限 | 102 | |
10003 | KEY过期 | 103 | |
10004 | 错误的OPENID | 104 | |
10005 | 应用未审核超时,请提交认证 | 105 | |
10007 | 未知的请求源 | 107 | |
10008 | 被禁止的IP | 108 | |
10009 | 被禁止的KEY | 109 | |
10011 | 当前IP请求超过限制 | 111 | |
10012 | 请求超过次数限制 | 112 | |
10013 | 测试KEY超过请求限制 | 113 | |
10014 | 系统内部异常(调用充值类业务时,请务必联系客服或通过订单查询接口检测订单,避免造成损失) | 114 | |
10020 | 接口维护 | 120 | |
10021 | 接口停用 | 121 |
错误码格式说明(示例:200201):
2 | 002 | 01 | |
---|---|---|---|
服务级错误(1为系统级错误) | 服务模块代码(即数据ID) | 具体错误代码 |