调用php接口问题
本帖最后由 chai1338 于 2014-11-19 18:01:45 编辑
这是我的算法
//调用php 接口api
public void GetPost()
{
Random rd = new Random();
int nonce = rd.Next(10000000,99999999);
long timestamp = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
//string url = hmacSha1("Cw1ryuPGNHL2TtedgDPQ7KY357uJIdBqCJqEk3JmyDwAAoaFjkZKZH9JTI2rsf8m", "date=2014-05-07&method=get_overview&nonce=97512772&resid=30086820×tamp=1399429784"); 这个就没问题
string url1 = hmacSha1("XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "date=2014-11-18&method=get_overview&nonce=" + nonce + "&resid=30086820×tamp=" + timestamp);
string url2 = "https://dbapi.cnzz.com/api/api.php?resid=30086820&date=2014-11-18&method=get_source_domain×tamp=" + timestamp + "&nonce=" + nonce + "&signature=" + url1;
Response.Write(getContent(url2));
}
private static string getContent(string Url)
{
string strResult = "";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
//声明一个HttpWebRequest请求
request.Timeout = 30000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.GetEncoding("GB2312");
StreamReader streamReader = new StreamReader(streamReceive, encoding);
strResult = streamReader.ReadToEnd();
streamReader.Close();
}
catch
{
throw;
}
return strResult;
}
///
/// hmacSha1算法加密(生成长度40)
///
/// 加密明文
/// 加密密钥
///
public static string hmacSha1(string encryptKey, string encryptText)
{
HMACSHA1 myHMACSHA1 = new HMACSHA1(Encoding.Default.GetBytes(encryptKey));
byte[] RstRes = myHMACSHA1.ComputeHash(Encoding.Default.GetBytes(encryptText));
StringBuilder EnText = new StringBuilder();
foreach (byte Byte in RstRes)
{
EnText.AppendFormat("{0:x2}", Byte);
}
return EnText.ToString();
}
当我把文档里面的值传进去 生成的url1 不会有问题跟文档对的上
但是把自己的值传进去 那边就返回url1生成数据报错 请问是我的算法写错了吗?
------解决思路----------------------
这个问一下人家提供api的接口
------解决思路----------------------
找提供接口的人。