質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2521閲覧

SWIFTでAPIにPOSTしたいのですが、HTTPリクエストヘッダの記述の仕方がわかりません。

takaswy

総合スコア15

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

2クリップ

投稿2017/08/01 14:56

macOS10.12.5、Xcode8.3.3にて、bitFlyer APIのHTTP Private APIを利用したいです。

Private APIの呼び出しには認証が必要で、
・ACCESS-KEY
・ACCESS-TIMESTAMP
・ACCESS-SIGN
をHTTPリクエストヘッダに含めるとあります。

SWIFT3.0でJSONパラメータをHTTP POST
を参考にして、

import Foundation import PlaygroundSupport PlaygroundPage.current.needsIndefiniteExecution = true let urlString = "https://httpbin.org/post" var request = URLRequest(url: URL(string:urlString)!) // set the method(HTTP-POST) request.httpMethod = "POST" // set the header(s) request.addValue("application/json", forHTTPHeaderField: "Content-Type") // set the request-body(JSON) let params: [String: Any] = [ "foo": "bar", "baz": [ "a": 1, "b": 20, "c": 300 ] ] do{ request.httpBody = try JSONSerialization.data(withJSONObject: params, options: []) }catch{ print(error.localizedDescription) } // use NSURLSessionDataTask let task = URLSession.shared.dataTask(with: request, completionHandler: {data, response, error in if (error == nil) { let result = String(data: data!, encoding: .utf8)! print(result) } else { print("error") } }) task.resume()

見ているのですが、リクエストヘッダの記述の仕方がわかりません。

bitFlyerのページには、

var request = require('request'); var crypto = require('crypto'); var key = '{{ YOUR API KEY }}'; var secret = '{{ YOUR API SECRET }}'; var timestamp = Date.now().toString(); var method = 'POST'; var path = '/v1/me/sendchildorder'; var body = JSON.stringify({ product_code: 'BTC_JPY', child_order_type: 'LIMIT', side: 'BUY', price: 30000, size: 0.1 }); var text = timestamp + method + path + body; var sign = crypto.createHmac('sha256', secret).update(text).digest('hex'); var options = { url: 'https://api.bitflyer.jp' + path, method: method, body: body, headers: { 'ACCESS-KEY': key, 'ACCESS-TIMESTAMP': timestamp, 'ACCESS-SIGN': sign, 'Content-Type': 'application/json' } }; request(options, function (err, response, payload) { console.log(payload); });

のサンプルコードがあるのですが、このサンプルコードのoptions内のheaders:を記述するにはどのようにしたら良いのでしょうか?
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

答え書いてあるよ

SWIFT

1request.addValue("application/json", forHTTPHeaderField: "Content-Type") 2

"application/json" がヘッダーの値
"Content-Type" がヘッダーのKey

つまり

request.addValue("AccessKeyの値", forHTTPHeaderField: "ACCESS-KEY") request.addValue("タイムスタンプ", forHTTPHeaderField: "ACCESS-TIMESTAMP") request.addValue("AccessSignの値", forHTTPHeaderField: "ACCESS-SIGN")

投稿2017/08/01 16:33

Tak1016

総合スコア1408

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問