HttpResponse クラス
Http クラスによって返された HTTP 応答を処理するには、HttpResponse クラスを使用します。
名前空間
使用方法
HttpResponse でアクセスされたレスポンスボディ内の XML または JSON コンテンツを解析するには、XML クラスまたは JSON クラスを使用します。
例
次の getXmlStreamReader の例では、内容は外部 Web サーバから取得され、XML は XmlStreamReader を使用して解析されます。
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public class ReaderFromCalloutSample {
18
19 public void getAndParse() {
20
21 // Get the XML document from the external server
22 Http http = new Http();
23 HttpRequest req = new HttpRequest();
24 req.setEndpoint('https://docsample.herokuapp.com/xmlSample');
25 req.setMethod('GET');
26 HttpResponse res = http.send(req);
27
28 // Log the XML content
29 System.debug(res.getBody());
30
31 // Generate the HTTP response as an XML stream
32 XmlStreamReader reader = res.getXmlStreamReader();
33
34 // Read through the XML
35 while(reader.hasNext()) {
36 System.debug('Event Type:' + reader.getEventType());
37 if (reader.getEventType() == XmlTag.START_ELEMENT) {
38 System.debug(reader.getLocalName());
39 }
40 reader.next();
41 }
42
43 }
44}HttpResponse メソッド
HttpResponse のメソッドは次のとおりです。すべてインスタンスメソッドです。
getBody()
応答で返された本文を取得します。
署名
public String getBody()
戻り値
型: String
使用方法
制限: 同期 Apex の場合は 6 MB、非同期 Apex の場合は 12 MB。HTTP 要求のサイズおよび応答のサイズは、ヒープサイズの合計にカウントされます。
getBodyAsBlob()
応答で返された本文を Blob として取得します。
署名
public Blob getBodyAsBlob()
戻り値
型: Blob
使用方法
制限: 同期 Apex の場合は 6 MB、非同期 Apex の場合は 12 MB。HTTP 要求のサイズおよび応答のサイズは、ヒープサイズの合計にカウントされます。
getBodyDocument()
応答で返された本文を DOM ドキュメントとして取得します。
署名
public Dom.Document getBodyDocument()
戻り値
型: Dom.Document
例
次のショートカットとして使用できます。
1String xml = httpResponse.getBody();
2Dom.Document domDoc = new Dom.Document(xml);getXmlStreamReader()
コールアウトレスポンスボディを解析する XmlStreamReader を返します。
署名
public XmlStreamReader getXmlStreamReader()
戻り値
使用方法
次のショートカットとして使用できます。
1String xml = httpResponse.getBody();
2XmlStreamReader xsr = new XmlStreamReader(xml);setStatusCode(statusCode)
toString()
次のような応答内に返された状況メッセージと状況コードを返します。
署名
public String toString()
戻り値
型: String
例
1Status=OK, StatusCode=200