Code Examples
Here are examples of how to test HTTP 305 responses in different programming languages:
Select options below to see how to use advanced features in your code:
curl https://free.mockerapi.com/305
{
"success": true,
"status": 305,
"statusText": "Use Proxy - The requested response must be accessed by a proxy (deprecated)",
"timestamp": "2025-10-08T10:30:45.123Z",
"request": {
"method": "GET",
"url": "/305",
"fullUrl": "https://free.mockerapi.com/305"
}
}fetch('https://free.mockerapi.com/305')
.then(response => {
console.log('Status:', response.status); // 305
return response.json();
})
.then(data => {
console.log('Success:', data);
})
.catch(error => {
console.error('Error:', error);
});{
"success": true,
"status": 305,
"statusText": "Use Proxy - The requested response must be accessed by a proxy (deprecated)",
"timestamp": "2025-10-08T10:30:45.123Z",
"request": {
"method": "GET",
"url": "/305",
"fullUrl": "https://free.mockerapi.com/305"
}
}import requests
response = requests.get('https://free.mockerapi.com/305')
print(f'Status Code: {response.status_code}') # 305
print(f'Response: {response.json()}'){
"success": true,
"status": 305,
"statusText": "Use Proxy - The requested response must be accessed by a proxy (deprecated)",
"timestamp": "2025-10-08T10:30:45.123Z",
"request": {
"method": "GET",
"url": "/305",
"fullUrl": "https://free.mockerapi.com/305"
}
}{
"success": true,
"status": 305,
"statusText": "Use Proxy - The requested response must be accessed by a proxy (deprecated)",
"timestamp": "2025-10-08T10:30:45.123Z",
"request": {
"method": "GET",
"url": "/305",
"fullUrl": "https://free.mockerapi.com/305"
}
}require 'net/http'
require 'json'
uri = URI('https://free.mockerapi.com/305')
response = Net::HTTP.get_response(uri)
puts "Status Code: #{response.code}" # 305
puts "Response: #{JSON.parse(response.body)}"{
"success": true,
"status": 305,
"statusText": "Use Proxy - The requested response must be accessed by a proxy (deprecated)",
"timestamp": "2025-10-08T10:30:45.123Z",
"request": {
"method": "GET",
"url": "/305",
"fullUrl": "https://free.mockerapi.com/305"
}
}package main
import (
"fmt"
"io"
"net/http"
)
func main() {
resp, err := http.Get("https://free.mockerapi.com/305")
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Printf("Status Code: %d\n", resp.StatusCode) // 305
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Printf("Response: %s\n", body)
}{
"success": true,
"status": 305,
"statusText": "Use Proxy - The requested response must be accessed by a proxy (deprecated)",
"timestamp": "2025-10-08T10:30:45.123Z",
"request": {
"method": "GET",
"url": "/305",
"fullUrl": "https://free.mockerapi.com/305"
}
}import java.net.http.*;
import java.net.URI;
public class HttpStatusTest {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://free.mockerapi.com/305"))
.GET()
.build();
HttpResponse response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("Status Code: " + response.statusCode()); // 305
System.out.println("Response: " + response.body());
}
} {
"success": true,
"status": 305,
"statusText": "Use Proxy - The requested response must be accessed by a proxy (deprecated)",
"timestamp": "2025-10-08T10:30:45.123Z",
"request": {
"method": "GET",
"url": "/305",
"fullUrl": "https://free.mockerapi.com/305"
}
}const https = require('https');
https.get('https://free.mockerapi.com/305', (res) => {
console.log('Status Code:', res.statusCode); // 305
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log('Response:', JSON.parse(data));
});
}).on('error', (err) => {
console.error('Error:', err.message);
});{
"success": true,
"status": 305,
"statusText": "Use Proxy - The requested response must be accessed by a proxy (deprecated)",
"timestamp": "2025-10-08T10:30:45.123Z",
"request": {
"method": "GET",
"url": "/305",
"fullUrl": "https://free.mockerapi.com/305"
}
}What is HTTP 305 Use Proxy?
HTTP 305 Use Proxy indicates that the request has more than one possible response. The server is informing the client that there are multiple options available for the requested resource, and the user or user agent should choose one of them.
This status code is rarely used in practice. When implemented, the server should include a list of resource characteristics and locations from which the user or user agent can choose the most appropriate one.
When Does This Happen?
A 305 Use Proxy response is returned when:
- A resource is available in multiple formats (e.g., different languages, file formats)
- Multiple versions of a resource exist and the server wants the client to choose
- The server cannot determine which representation to return based on the request headers
- Content negotiation requires explicit user selection
Try It Live
Click the button below to make a live request and see the 305 Use Proxy response
Common Use Cases
๐ Content Negotiation Testing
Test how your application handles multiple resource options and content negotiation scenarios.
๐ Multi-Format Resources
Mock responses for resources available in multiple formats (JSON, XML, etc.) or languages.
๐ Version Selection
Test client behavior when multiple versions of an API or resource are available.
๐ฏ Client Choice Testing
Verify that your application properly handles scenarios where user selection is required.
๐ API Documentation
Demonstrate multiple choice scenarios in API documentation with working examples.
๐งช Edge Case Testing
Test rarely-used HTTP status codes to ensure comprehensive error handling.