or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

async-operations.mdexecutor-auth.mdindex.mdrequest-operations.mdresponse-handling.md

request-operations.mddocs/

0

# HTTP Request Operations

1

2

The Request class provides a fluent interface for building and configuring HTTP requests. All methods return the Request instance for method chaining.

3

4

## Request Factory Methods

5

6

Create HTTP requests using static factory methods for each HTTP method:

7

8

```java { .api }

9

public static Request Get(String uri);

10

public static Request Get(URI uri);

11

public static Request Post(String uri);

12

public static Request Post(URI uri);

13

public static Request Put(String uri);

14

public static Request Put(URI uri);

15

public static Request Delete(String uri);

16

public static Request Delete(URI uri);

17

public static Request Head(String uri);

18

public static Request Head(URI uri);

19

public static Request Options(String uri);

20

public static Request Options(URI uri);

21

public static Request Patch(String uri);

22

public static Request Patch(URI uri);

23

public static Request Trace(String uri);

24

public static Request Trace(URI uri);

25

```

26

27

### Usage Examples

28

29

```java

30

// GET request

31

Request getRequest = Request.Get("https://api.example.com/users");

32

33

// POST request

34

Request postRequest = Request.Post("https://api.example.com/users");

35

36

// PUT request with URI object

37

URI uri = new URI("https://api.example.com/users/123");

38

Request putRequest = Request.Put(uri);

39

```

40

41

## Request Execution

42

43

Execute the configured request and get a Response object:

44

45

```java { .api }

46

public Response execute() throws ClientProtocolException, IOException;

47

public void abort() throws UnsupportedOperationException;

48

```

49

50

### Usage Examples

51

52

```java

53

// Execute and get response

54

Response response = Request.Get("https://api.example.com/data").execute();

55

56

// Abort a request (if still in progress)

57

Request request = Request.Get("https://slow-api.example.com/data");

58

request.abort();

59

```

60

61

## Header Configuration

62

63

Configure HTTP headers using various methods:

64

65

```java { .api }

66

public Request addHeader(Header header);

67

public Request addHeader(String name, String value);

68

public Request setHeader(Header header);

69

public Request setHeader(String name, String value);

70

public Request removeHeader(Header header);

71

public Request removeHeaders(String name);

72

public Request setHeaders(Header... headers);

73

public Request setCacheControl(String cacheControl);

74

public Request setDate(Date date);

75

public Request setIfModifiedSince(Date date);

76

public Request setIfUnmodifiedSince(Date date);

77

```

78

79

### Usage Examples

80

81

```java

82

import org.apache.http.message.BasicHeader;

83

import java.util.Date;

84

85

Request request = Request.Post("https://api.example.com/data")

86

.addHeader("Authorization", "Bearer token123")

87

.addHeader("Content-Type", "application/json")

88

.setHeader(new BasicHeader("X-API-Version", "v1"))

89

.setCacheControl("no-cache")

90

.setDate(new Date())

91

.setIfModifiedSince(new Date(System.currentTimeMillis() - 86400000)); // 24 hours ago

92

```

93

94

## HTTP Protocol Configuration

95

96

Configure HTTP protocol settings:

97

98

```java { .api }

99

public Request version(HttpVersion version);

100

public Request useExpectContinue();

101

public Request userAgent(String agent);

102

```

103

104

### Usage Examples

105

106

```java

107

import org.apache.http.HttpVersion;

108

109

Request request = Request.Post("https://api.example.com/upload")

110

.version(HttpVersion.HTTP_1_1)

111

.useExpectContinue()

112

.userAgent("MyApp/1.0");

113

```

114

115

## Connection Configuration

116

117

Configure connection timeouts and proxy settings:

118

119

```java { .api }

120

public Request socketTimeout(int timeout);

121

public Request connectTimeout(int timeout);

122

public Request viaProxy(HttpHost proxy);

123

public Request viaProxy(String proxy);

124

```

125

126

### Usage Examples

127

128

```java

129

import org.apache.http.HttpHost;

130

131

Request request = Request.Get("https://api.example.com/data")

132

.connectTimeout(5000) // 5 second connection timeout

133

.socketTimeout(30000) // 30 second socket timeout

134

.viaProxy(new HttpHost("proxy.example.com", 8080))

135

.viaProxy("proxy.example.com:8080");

136

```

137

138

## Request Body Configuration

139

140

Configure request body for entity-enclosing requests (POST, PUT, PATCH):

141

142

```java { .api }

143

public Request body(HttpEntity entity);

144

public Request bodyString(String s, ContentType contentType);

145

public Request bodyFile(File file, ContentType contentType);

146

public Request bodyByteArray(byte[] b);

147

public Request bodyByteArray(byte[] b, ContentType contentType);

148

public Request bodyByteArray(byte[] b, int off, int len);

149

public Request bodyByteArray(byte[] b, int off, int len, ContentType contentType);

150

public Request bodyStream(InputStream inStream);

151

public Request bodyStream(InputStream inStream, ContentType contentType);

152

public Request bodyForm(Iterable<? extends NameValuePair> formParams);

153

public Request bodyForm(Iterable<? extends NameValuePair> formParams, Charset charset);

154

public Request bodyForm(NameValuePair... formParams);

155

```

156

157

### Usage Examples

158

159

```java

160

import org.apache.http.entity.ContentType;

161

import org.apache.http.client.fluent.Form;

162

import java.io.File;

163

import java.io.FileInputStream;

164

import java.nio.charset.StandardCharsets;

165

166

// JSON string body

167

Request jsonRequest = Request.Post("https://api.example.com/users")

168

.bodyString("{\"name\":\"John\",\"email\":\"john@example.com\"}", ContentType.APPLICATION_JSON);

169

170

// File body

171

File file = new File("/path/to/document.pdf");

172

Request fileRequest = Request.Put("https://api.example.com/documents")

173

.bodyFile(file, ContentType.APPLICATION_OCTET_STREAM);

174

175

// Byte array body

176

byte[] data = "Hello World".getBytes(StandardCharsets.UTF_8);

177

Request byteRequest = Request.Post("https://api.example.com/data")

178

.bodyByteArray(data, ContentType.TEXT_PLAIN);

179

180

// Stream body

181

FileInputStream stream = new FileInputStream(file);

182

Request streamRequest = Request.Post("https://api.example.com/upload")

183

.bodyStream(stream, ContentType.APPLICATION_OCTET_STREAM);

184

185

// Form data body

186

Request formRequest = Request.Post("https://api.example.com/login")

187

.bodyForm(Form.form()

188

.add("username", "user")

189

.add("password", "pass")

190

.build());

191

192

// Form with custom charset

193

Request formWithCharset = Request.Post("https://api.example.com/submit")

194

.bodyForm(Form.form()

195

.add("comment", "Héllo Wörld")

196

.build(), StandardCharsets.UTF_8);

197

```

198

199

## Constants

200

201

```java { .api }

202

public static final String DATE_FORMAT = "EEE, dd MMM yyyy HH:mm:ss zzz";

203

public static final Locale DATE_LOCALE = Locale.US;

204

public static final TimeZone TIME_ZONE = TimeZone.getTimeZone("GMT");

205

```

206

207

## Deprecated Methods

208

209

These methods are deprecated and have no effect:

210

211

```java { .api }

212

@Deprecated public Request config(String param, Object object);

213

@Deprecated public Request removeConfig(String param);

214

@Deprecated public Request elementCharset(String charset);

215

@Deprecated public Request staleConnectionCheck(boolean b);

216

```

217

218

## Error Handling

219

220

Request methods can throw:

221

222

- `IllegalStateException` - When trying to set body on non-entity-enclosing requests (GET, HEAD, etc.)

223

- `UnsupportedOperationException` - When calling abort() on completed requests

224

- Parameter validation occurs during execution, not during request building

225

226

### Usage Examples

227

228

```java

229

try {

230

// This will throw IllegalStateException

231

Request.Get("https://api.example.com/data")

232

.bodyString("data", ContentType.TEXT_PLAIN)

233

.execute();

234

} catch (IllegalStateException e) {

235

System.err.println("Cannot set body on GET request: " + e.getMessage());

236

}

237

```