This repository was archived by the owner on Jan 1, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathHttpDiffRequestsSameServerApp.java
More file actions
73 lines (62 loc) · 2.86 KB
/
HttpDiffRequestsSameServerApp.java
File metadata and controls
73 lines (62 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
Copyright [2013-2015] eBay Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package io.parallec.sample.app.http;
import io.parallec.core.FilterRegex;
import io.parallec.core.ParallecResponseHandler;
import io.parallec.core.ParallelClient;
import io.parallec.core.ResponseOnSingleTask;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.apache.http.util.Asserts;
/**
*
* Example of sending Different requests to same target server. note that the target host must
* match the key: e.g. hitting
* http://www.parallec.io/userdata/sample_weather_48824.txt
* http://www.parallec.io/userdata/sample_weather_95037.txt
*
* You may fire thousands of APIs to the same server in this way.
*
* This is the easiest way to conduct variable replacement (only 1 variable)
* more complex examples are in the test cases:
* https://github.com/eBay/parallec/blob/master/src/test/java/io/parallec/core/
* main/http/request/template/ParallelClientVarReplacementHostSpecificTest.java
*
*/
public class HttpDiffRequestsSameServerApp {
public static void main(String[] args) {
ParallelClient pc = new ParallelClient();
Map<String, Object> responseContext = new HashMap<String, Object>();
responseContext.put("temp", null);
pc.prepareHttpGet("/userdata/sample_weather_$ZIP.txt")
.setReplaceVarMapToSingleTargetSingleVar("ZIP",
Arrays.asList("95037","48824"), "www.parallec.io")
.setResponseContext(responseContext)
.execute(new ParallecResponseHandler() {
public void onCompleted(ResponseOnSingleTask res,
Map<String, Object> responseContext) {
String temp = new FilterRegex("(.*)").filter(res
.getResponseContent());
System.out.println("\n!!Temperature: " + temp
+ " TargetHost: " + res.getHost());
responseContext.put("temp", temp);
}
});
int tempGlobal = Integer.parseInt((String) responseContext.get("temp"));
Asserts.check(
tempGlobal <= 100 && tempGlobal >= 0,
" Fail to extract output from sample weather API. Fail different request to same server test");
pc.releaseExternalResources();
}
}