

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 HTTP 请求自定义为 AWS
<a name="customize-http-request"></a>

 适用于 SAP ABAP 的 AWS SDK 处理创建 HTTP 请求、发送有效负载和接收响应的过程。您可以自定义 HTTP 请求的行为或内容以满足您自己的 IT 要求。SDK 将增强点定义`/AWS1/RT_EHN_HTTP_CLIENT`为增强 HTTP 通信的中心位置。增强版支持向发出的请求中添加 HTTP 标头 AWS。

## 实施增强
<a name="implement-enhancement"></a>

SAP 为实施增强点提供了以下说明：
+ [经典 ABAP](https://help.sap.com/doc/saphelp_nw75/7.5.5/en-US/5f/103a4280da9923e10000000a155106/frameset.htm)
+ [BTP ABAP](https://help.sap.com/docs/abap-cloud/abap-development-tools-user-guide/creating-badi-implementations)

## 筛选增强功能
<a name="filter-enhancement"></a>



增强点支持多个可以同时激活的实现。如果您需要确保增强功能仅在调用特定 AWS 服务或 API 操作时运行，则可以 BAdi 根据以下属性筛选执行情况：
+ `TLA`-服务的三个字母缩写，以大写字母表示。
+ `OPERATION`-API 操作名称。例如，从 S3 存储桶获取对象的操作是[GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)。操作名称区分大小写，可能与 ABAP 方法名称不完全匹配。

## 对增强功能进行编码
<a name="code-enhancement"></a>

此增强功能提供了以下方法。

### 修改请求标头
<a name="modify-req-headers"></a>

```
CHANGING CT_HEADERS TYPE /AWS1/RT_STRINGMAP_TT
```

可以在`CT_HEADERS`内部表中追加和修改标题。我们不建议修改标头，因为这会改变 AWS 服务使用的数据。 AWS 服务会忽略您添加的任何标头，但可以由您的 IT 基础架构（例如代理服务器或其他中间件）进行处理。

增强点是在计算身份验证和遥测标头之前调用的，因此增强功能无法对其进行修改。

以下是一个实现示例。

```
METHOD /aws1/if_rt_badi_http_client~modify_req_headers.
  APPEND VALUE /aws1/rt_stringpair_ts( name = '{{x-test-example}}' value = '{{value}}' ) 
    TO ct_headers.
ENDMETHOD.
```