私はBungieのゲームDestinyから人のXboxアカウントの統計を検索する、自分のアプリケーション開発クラスの最終プロジェクトのためにアプリケーションを開発しています。 BungieのAPI for Destinyは、GETとPOSTのエンドポイントの束です。現在、私は、このGETエンドポイントに、分類されたAPIキー「http://www.bungie.net/Platform/Destiny/Stats/ActivityHistory/1/4611686018435748893/2305843009397915105/」を使用してアクセスしようとしています。しかし、そのエンドポイントをプルダウンすると、実際のJSONの代わりにJSONの書式設定が得られます。ここでAlamofireがJSONデータの代わりに書式設定を返す
は、私が使用しているコードです:
override func viewDidLoad()
{
super.viewDidLoad()
let headers = ["X-API-Key": //My API Key Here]
let parameters : Parameters = [:]
Alamofire.request("http://www.bungie.net/Platform/Destiny/Stats/UniqueWeapons/1/4611686018435748893/2305843009397915105/", method: .get, parameters: nil, encoding: JSONEncoding.default, headers: headers)
.responseString()
{ response in
if let JSON = response.result.value
{
print("JSON: \(JSON)")
}
}
}
これは返すものの例である:
JSON: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Page Restricted</title>
<style>
body{
font-family:Arial,Helvetica,sans-serif;
background:url(body_bg.png) repeat-x #FFFFFF;
margin:0;
}
.text3 {
FONT-SIZE: 14px;
color:#000000;
text-decoration:none;
}
.menuTitle {
FONT-SIZE: 26px;
color:#bd0000;
font-weight:bold;
text-decoration:none;
}
.loginText{
color:#bd0000;
margin-left:220px;
text-decoration:none;
}
.loginText:hover{
text-decoration:underline;
}
</style>
<script type="text/javascript" src="block.js"></script>
</head>
<body onLoad="javascript:displaySections();">
<center>
<table cellpadding="0" cellspacing="0" width="900">
<tr>
<td><img src="top.png" /></td>
</tr>
<tr>
<td height="130" align="left"><table cellpadding="0" cellspacing="0" width="100%" align="left" style="border-right: 1px dashed #999999; border-left: 1px dashed #999999;">
<tr>
<td height="40" colspan="3"></td>
</tr>
<TR>
<TD COLSPAN="100%"><TABLE WIDTH="100%" CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD WIDTH="3%" height="29"></TD>
<TD WIDTH="94%" class="menuTitle" align="center">Page Blocked</TD>
<TD WIDTH="3%"></TD>
</TR>
</TABLE></TD>
</TR>
<tr>
<td colspan="100%"> </td>
</tr>
<tr>
<TD width="5%"> </TD>
<TD width="90%" style="padding:3px;" class="text3">Access to the requested site has been restricted due to your organization’s policy.</TD>
<TD width="5%"> </TD>
</tr>
<tr>
<TD width="5%" height="40"></TD>
<TD width="90%" class="text3" style="padding:3px;"><span id="customText"></span></TD>
<TD width="5%"></TD>
</tr>
<tr>
<td height="50" width="5%"> </td>
<td class="text3" width="90%"><table class="text3" cellpadding="3" cellspacing="0" width="100%" align="left">
<tr>
<td width="90%"><strong>URL/Content: </strong><span id="url"></span></td>
<td width="10%"></td>
</tr>
<tr>
<td width="90%"><strong>Description: </strong><span id="description"></span></td>
<td width="10%"></td>
</tr>
<tr>
<td width="90%"><strong>Group Number: </strong><span id="groupNumber"></span></td>
<td width="10%"></td>
</tr>
<tr>
<td width="90%"><strong>Ip Address: </strong><span id="ipAddress"></span></td>
<td width="10%"></td>
</tr>
</table></td>
<td width="5%"> </td>
</tr>
<tr>
<td align="center" height="250" colspan="100%"><img src="alert.png" /></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="100%" cellspacing="0" cellpadding="0" style="border-right: 1px dashed #999999; border-left: 1px dashed #999999;">
<tr>
<td width="100%" align="center"><span id="loginDifferentUser"></span></td>
</tr>
<tr>
<td height="15" colspan="100%"></td>
</tr>
</table></td>
</tr>
<FORM action="" method="POST" >
<INPUT type="hidden" name="button">
<INPUT type="hidden" name="fullUrl">
<INPUT type="hidden" name="rem">
<INPUT type="hidden" name="contactEmail">
<INPUT type="hidden" name="gn">
<tr>
<td><table width="100%" cellspacing="0" cellpadding="0" style="border-right: 1px dashed #999999; border-left: 1px dashed #999999;">
<tr>
<td colspan="100%" height="10"></td>
</tr>
<tr>
<td width="8%"></td>
<td class="text3" colspan="13" id="exceptionColor"><strong><span id="exception1"></span></strong></td>
<td width="22%"></td>
</tr>
<tr>
<td colspan="100%" height="10"></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="100%" cellspacing="0" cellpadding="0" style="border-right: 1px dashed #999999; border-left: 1px dashed #999999;">
<tr>
<td width="20%"></td>
<td class="text3" width="10%"><strong><span id="exception5"></span></strong> </td>
<td class="text3" width="3%"></td>
<td width="32%" align="left"><span id="exception6"></span></td>
<td class="text3" width="5%"></td>
<td width="27%" valign="bottom"></td>
<td width="3%"> </td>
</tr>
<tr>
<td width="20%"></td>
<td class="text3" width="10%"><strong><span id="exception2"></span></strong> </td>
<td class="text3" width="3%"></td>
<td width="32%" align="left"><span id="exception3"></span></td>
<td class="text3" width="5%"></td>
<td width="27%" valign="bottom"><span id="exception4"></span></td>
<td width="3%"> </td>
</tr>
<tr>
<td height="45" colspan="100%"></td>
</tr>
</table></td>
</tr>
</FORM>
<tr>
<td style="background:url(footer.png) repeat-x; height:100px;" align="left"><img src="footer-logo.png" style="margin:15px;" /></td>
</tr>
</table>
</center>
</body>
</html>
P.S.私はAlamofireをインポートしました。私はエラーが私とデータを.responseString()として呼び出すことと関係があると信じています。しかし、私は.responseJSON(としてそれを呼び出したときに)これが返されます:
2017-07-11 12:02:20.671937-0500 DCR[96883:6910175] [] nw_socket_write_close shutdown(9, SHUT_WR): [57] Socket is not connected
2017-07-11 12:02:20.673995-0500 DCR[96883:6910175] [] nw_endpoint_flow_service_writes [1.1 104.20.29.30:80 ready socket-flow (satisfied)] Write request has 0 frame count, 0 byte count
2017-07-11 12:02:20.693119-0500 DCR[96883:6910180] [] tcp_connection_write_eof_block_invoke Write close callback received error: [89] Operation canceled