> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# HCMockAddMock

> HCMockAddMock

# HCMockAddMock

配置 libHttpClient 在调用 HCHttpCallPerformAsync() 时返回模拟响应，而不进行网络调用。

## Syntax

```cpp theme={null}
HRESULT HCMockAddMock(  
         HCMockCallHandle call,  
         const char* method,  
         const char* url,  
         const uint8_t* requestBodyBytes,  
         uint32_t requestBodySize  
)  
```

### Parameters

*call*   \_In\_\
Type: HCMockCallHandle

此 HC\_MOCK\_CALL\_HANDLE 表示已使用 HCMockResponseSet\*() 相应配置好的模拟。

*method*   \_In\_opt\_z\_\
Type: char\*

如果只希望模拟应用于特定 URL，请传入 UTF-8 编码的方法和 URL。

*url*   \_In\_opt\_z\_\
Type: char\*

如果只希望模拟应用于特定 URL，请传入 UTF-8 编码的方法和 URL。

*requestBodyBytes*   \_In\_reads\_bytes\_opt\_(requestBodySize)\
Type: uint8\_t\*

如果只希望模拟应用于特定 URL 与请求字符串，请传入方法、URL 和字符串正文。

*requestBodySize*   \_In\_\
Type: uint32\_t

requestBodyBytes 的大小（以字节为单位）。

### Return value

Type: HRESULT

此 API 操作的结果代码。可能的值为 S\_OK、E\_INVALIDARG、E\_OUTOFMEMORY 或 E\_FAIL。

## Remarks

若要定义模拟响应，请使用 HCMockCallCreate() 创建一个新的 HC\_MOCK\_CALL\_HANDLE 来表示该模拟。然后使用 HCMockResponseSet\*() 设置模拟响应。默认情况下，模拟响应将对所有 HTTP 调用返回。如果只希望模拟应用于特定 URL，请传入 URL。如果只希望模拟应用于特定 URL 与请求正文，请传入 URL 和正文。当 HC\_MOCK\_CALL\_HANDLE 按需配置完毕后，通过调用 HCMockAddMock() 将该模拟添加到系统。可以通过多次调用 HCMockAddMock() 并传入一组模拟响应来设置多个活动模拟响应。如果 HTTP 调用与一组已设置的模拟响应匹配，则会在每次后续调用 HCHttpCallPerformAsync() 时按顺序执行它们。命中最后一个匹配的模拟响应后，最后一个匹配的模拟响应将在每次后续调用 HCHttpCallPerformAsync() 时重复返回。

## Requirements

**Header:** mock.h

**Library:** libHttpClient.GDK.lib

## See also

[mock](/reference/live/httpclient/mock/mock_members)


## Related topics

- [HCMockClearMocks](/zh-CN/reference/live/httpclient/mock/functions/hcmockclearmocks.md)
- [HCMockCallCreate](/zh-CN/reference/live/httpclient/mock/functions/hcmockcallcreate.md)
- [HCMockRemoveMock](/zh-CN/reference/live/httpclient/mock/functions/hcmockremovemock.md)
- [HCMockSetMockMatchedCallback](/zh-CN/reference/live/httpclient/mock/functions/hcmocksetmockmatchedcallback.md)
- [HCMockCallCloseHandle](/zh-CN/reference/live/httpclient/mock/functions/hcmockcallclosehandle.md)
