###前提・実現したいこと
c#でzaifのapiで認証し「get_info」を実行したい。(詳細は以下参照)
ネット上にはC#のサンプルが無くて苦しんでます。
https://corp.zaif.jp/api-docs/trade-api/#method_get_info
###発生している問題・エラーメッセージ
httpのリクエストの応答値が以下のようになってしまいます。
response = "{"success": 0, "error": "invalid nonce parameter"}"
###該当のソースコード
class API_ZAIF_get_info
{
static readonly Uri endpointUri = new Uri("https://api.zaif.jp");
static readonly string apiKey = "APIキー";
static readonly string apiSecret = "APIシークレットキー";
public async Task<string> TaskStart() { var method = "POST"; var path = "/tapi"; var query = ""; var timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString(); var body = @"{ ""nonce"": """ + timestamp + @""", ""method"": ""get_info"" }"; var data=""; data = HttpUtility.UrlEncode(body); var hash = HASH.SignWithHMACSHA512(data, apiSecret); using (var client = new HttpClient()) using (var request = new HttpRequestMessage(new HttpMethod(method), path + query)) using (var content = new StringContent(body)) { client.BaseAddress = endpointUri; content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); request.Content = content; request.Headers.Add("Key", apiKey); request.Headers.Add("Sign", hash); HttpResponseMessage message = await client.SendAsync(request); if (message.IsSuccessStatusCode) { var response = await message.Content.ReadAsStringAsync(); WriteTextFile_ErrorInfo.write(request.ToString()); WriteTextFile_ErrorInfo.write(message.ToString()); return response; } else { WriteTextFile_ErrorInfo.write(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "API_ZAIF_get_info"); WriteTextFile_ErrorInfo.write(request.ToString()); WriteTextFile_ErrorInfo.write(message.ToString()); return "false"; } } }
}
C#に詳しい方がいたら、何処が悪いか教えて頂きたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/19 00:51
2016/05/19 10:26