using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Windows;
namespace restTest
{
/// <summary>
/// MainWindow.xaml에 대한 상호 작용 논리
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
string url = "https://kapi.kakao.com/v1/payment/ready";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.Host = "kapi.kakao.com";
req.Headers.Add("Authorization", "KakaoAK 08417b7e1f17f4f2526284ad3f29d329");
req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
List<KeyValuePair<string, object>> data = new List<KeyValuePair<string, object>>()
{
new KeyValuePair<string, object>("cid", "TC0ONETIME"),
new KeyValuePair<string, object>("partner_order_id ", "partner_order_id"),
new KeyValuePair<string, object>("partner_user_id", "partner_user_id"),
new KeyValuePair<string, object>("item_name", "JinjuBeer"),
new KeyValuePair<string, object>("quantity", 1),
new KeyValuePair<string, object>("total_amountid", 22500),
new KeyValuePair<string, object>("tax_free_amount", 20455),
new KeyValuePair<string, object>("approval_url", "https://developers.kakao.com/success"),
new KeyValuePair<string, object>("fail_url", "https://developers.kakao.com/fail"),
new KeyValuePair<string, object>("cancel_url", "https://developers.kakao.com/cancel"),
};
StringBuilder builder = new StringBuilder();
foreach (KeyValuePair<string, object> kvp in data)
builder.Append(kvp.Key + "=" + kvp.Value + "&");
// 여기서 builder 디버깅 보자.
// data들을 UTF8형식으로 바이트 변환함.
byte[] bytes = Encoding.UTF8.GetBytes(builder.ToString());
req.ContentLength = bytes.Length;
// HttpWebRequest req에 변환된 데이터들을 넣자.
using (Stream reqStream = req.GetRequestStream())
reqStream.Write(bytes, 0, bytes.Length);
// 받은 내용 저장 변수
string responseText = string.Empty;
// HttpWebRequest req로부터 response한 결과 클래스
using (WebResponse resp = req.GetResponse())
{
Stream respStream = resp.GetResponseStream();
}
}
}
}
키와 값을 적절하게 필요로 하는것을 넣은것 같은데 계속 400에러가 뜨네요…
application/x-www-form-urlencoded;charset=utf-8 타입이니 UTF8 형식으로 인코딩하여 보냈는데도 원인을 못찾겠어요.
혹시나하여 스트링 마지막에 붙는 &를 떼어보아도 동일한 결과네요.