Skip to content

Commit

Permalink
Merge pull request shamblett#181
Browse files Browse the repository at this point in the history
* URI tweaks
  • Loading branch information
JosefWN committed Jun 26, 2023
1 parent c6f2bb1 commit fafdb01
Show file tree
Hide file tree
Showing 22 changed files with 164 additions and 200 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ The CoAP library is an implementation in Dart providing a CoAP client, the code
```dart
FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(uri, conf);
final baseUri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(baseUri, conf);
try {
final response =
Expand Down
12 changes: 6 additions & 6 deletions example/cancel_request.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,17 @@ import 'config/coap_config.dart';

FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(uri, config: conf);
final baseUri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(baseUri, config: conf);

final cancelThisReq = CoapRequest.newGet(uri.replace(path: 'doesNotExist'));
final cancelThisReq = CoapRequest.get(Uri(path: 'doesNotExist'));

try {
// Ensure this request is not also cancelled
print('Sending async get /hello to ${uri.host}');
final helloRespFuture = client.get('hello');
print('Sending async get /hello to ${baseUri.host}');
final helloRespFuture = client.get(Uri(path: 'hello'));

print('Sending async get /doesNotExist to ${uri.host}');
print('Sending async get /doesNotExist to ${baseUri.host}');
final ignoreThisFuture = client.send(cancelThisReq);

print('Cancelling get /doesNotExist retries');
Expand Down
8 changes: 4 additions & 4 deletions example/delete_resource.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@ import 'config/coap_config.dart';

FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(
final baseUri = Uri(
scheme: 'coap',
host: 'californium.eclipseprojects.io',
port: conf.defaultPort,
);
final client = CoapClient(uri, config: conf);
final client = CoapClient(baseUri, config: conf);

try {
print('Sending delete /test to ${uri.host}');
final response = await client.delete('test');
print('Sending delete /test to ${baseUri.host}');
final response = await client.delete(Uri(path: 'test'));

print('/test response status: ${response.statusCodeString}');
} on Exception catch (e) {
Expand Down
6 changes: 3 additions & 3 deletions example/discover_resources.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ import 'config/coap_config.dart';

FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(uri, config: conf);
final baseUri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(baseUri, config: conf);

try {
print('Sending get /discover/.well-known/core to ${uri.host}');
print('Sending get /discover/.well-known/core to ${baseUri.host}');
final links = await client.discover();

print('Discovered resources:');
Expand Down
8 changes: 4 additions & 4 deletions example/get_blockwise.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ import 'config/coap_config.dart';

FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(uri, config: conf);
final baseUri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(baseUri, config: conf);

try {
print('Sending get /large to ${uri.host}');
final response = await client.get('large');
print('Sending get /large to ${baseUri.host}');
final response = await client.get(Uri(path: 'large'));

print('/large response: ${response.payloadString}');
} on Exception catch (e) {
Expand Down
9 changes: 5 additions & 4 deletions example/get_max_retransmit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,21 @@ import './config/coap_config.dart';

FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(scheme: 'coap', host: 'google.com', port: conf.defaultPort);
final client = CoapClient(uri, config: conf);
final baseUri =
Uri(scheme: 'coap', host: 'google.com', port: conf.defaultPort);
final client = CoapClient(baseUri, config: conf);

print('maxRetransmit config: ${conf.maxRetransmit}');

final request = CoapRequest.newGet(uri.replace(path: 'doesNotExist'));
final request = CoapRequest.get(Uri(path: 'doesNotExist'));
print('maxRetransmit request: ${request.maxRetransmit} (0=config default)');

try {
// Override maxRetransmit for this request
request.maxRetransmit = 2;
print('maxRetransmit altered request: ${request.maxRetransmit}');

print('Sending get /doesNotExist to ${uri.host}');
print('Sending get /doesNotExist to ${baseUri.host}');
print('Waiting for timeout, this might take a while...');
final resp = await client.send(request);

Expand Down
24 changes: 12 additions & 12 deletions example/get_observe_async.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,53 +15,53 @@ import 'config/coap_config.dart';

FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(
final baseUri = Uri(
scheme: 'coap',
host: 'californium.eclipseprojects.io',
port: conf.defaultPort,
);
final client = CoapClient(uri, config: conf);
final client = CoapClient(baseUri, config: conf);

// Create the request for the get request
final reqObs = CoapRequest.newGet(uri.replace(path: 'obs'));
final reqObs = CoapRequest.get(Uri(path: 'obs'));

try {
print('Observing /obs on ${uri.host}');
print('Observing /obs on ${baseUri.host}');
final obs = await client.observe(reqObs);
obs.listen((final e) {
print('/obs response: ${e.payloadString}');
});

final reqObsNon = CoapRequest(
uri.replace(path: 'obs-non'),
Uri(path: 'obs-non'),
RequestMethod.get,
confirmable: false,
);

print('Observing /obs-non on ${uri.host}');
print('Observing /obs-non on ${baseUri.host}');
final obsNon = await client.observe(reqObsNon);
obsNon.listen((final e) {
print('/obs-non response: ${e.payloadString}');
});

final futures = <Future<void>>[];
print('Sending get /large to ${uri.host}');
print('Sending get /large to ${baseUri.host}');
futures.add(
client.get('large').then(
client.get(Uri(path: 'large')).then(
(final resp) => print('/large response: ${resp.payloadString}'),
),
);

print('Sending get /test to ${uri.host}');
print('Sending get /test to ${baseUri.host}');
futures.add(
client
.get('test')
.get(Uri(path: 'test'))
.then((final resp) => print('/test response: ${resp.payloadString}')),
);

print('Sending get /separate to ${uri.host}');
print('Sending get /separate to ${baseUri.host}');
futures.add(
client.get('separate').then(
client.get(Uri(path: 'separate')).then(
(final resp) => print('/separate response: ${resp.payloadString}'),
),
);
Expand Down
20 changes: 11 additions & 9 deletions example/get_resource.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,23 @@ import 'config/coap_config.dart';

FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(uri, config: conf);
final baseUri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(baseUri, config: conf);

try {
print('Sending get /test to ${uri.host}');
var response = await client.get('test');
print('Sending get /test to ${baseUri.host}');
var response = await client.get(Uri(path: 'test'));
print('/test response: ${response.payloadString}');

print('Sending get /multi-format (text) to ${uri.host}');
response = await client.get('multi-format');
print('Sending get /multi-format (text) to ${baseUri.host}');
response = await client.get(Uri(path: 'multi-format'));
print('/multi-format (text) response: ${response.payloadString}');

print('Sending get /multi-format (xml) to ${uri.host}');
response =
await client.get('multi-format', accept: CoapMediaType.applicationXml);
print('Sending get /multi-format (xml) to ${baseUri.host}');
response = await client.get(
Uri(path: 'multi-format'),
accept: CoapMediaType.applicationXml,
);
print('/multi-format (xml) response: ${response.payloadString}');
} on Exception catch (e) {
print('CoAP encountered an exception: $e');
Expand Down
2 changes: 1 addition & 1 deletion example/get_resource_multicast.dart
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ FutureOr<void> main() async {
final client = CoapClient(uri);

try {
final request = CoapRequest.newGet(uri.replace(path: '/.well-known/core'));
final request = CoapRequest.get(Uri(path: '/.well-known/core'));

await for (final response in client.sendMulticast(request)) {
print(response.payloadString);
Expand Down
20 changes: 11 additions & 9 deletions example/get_resource_secure.dart
Original file line number Diff line number Diff line change
Expand Up @@ -34,29 +34,31 @@ class DtlsConfig extends DefaultCoapConfig {

FutureOr<void> main() async {
final conf = DtlsConfig();
final uri = Uri(
final baseUri = Uri(
scheme: 'coaps',
host: 'californium.eclipseprojects.io',
port: conf.defaultSecurePort,
);
final client = CoapClient(
uri,
baseUri,
config: conf,
pskCredentialsCallback: pskCredentialsCallback,
);

try {
print('Sending get /test to ${uri.host}');
var response = await client.get('test');
print('Sending get /test to ${baseUri.host}');
var response = await client.get(Uri(path: 'test'));
print('/test response: ${response.payloadString}');

print('Sending get /multi-format (text) to ${uri.host}');
response = await client.get('multi-format');
print('Sending get /multi-format (text) to ${baseUri.host}');
response = await client.get(Uri(path: 'multi-format'));
print('/multi-format (text) response: ${response.payloadString}');

print('Sending get /multi-format (xml) to ${uri.host}');
response =
await client.get('multi-format', accept: CoapMediaType.applicationXml);
print('Sending get /multi-format (xml) to ${baseUri.host}');
response = await client.get(
Uri(path: 'multi-format'),
accept: CoapMediaType.applicationXml,
);
print('/multi-format (xml) response: ${response.payloadString}');
} on Exception catch (e) {
print('CoAP encountered an exception: $e');
Expand Down
9 changes: 5 additions & 4 deletions example/log_events.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import 'utils.dart';

FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(uri, config: conf);
final baseUri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(baseUri, config: conf);

final opt = UriQueryOption(
'${LinkFormatParameter.title.short}=This is an SJH Post request',
Expand All @@ -30,8 +30,9 @@ FutureOr<void> main() async {
print('Listening to the internal request/response event stream');
client.events.on<Object>().listen(print);

print('Sending post /large-create to ${uri.host}');
await client.post('large-create', payload: payload, options: [opt]);
print('Sending post /large-create to ${baseUri.host}');
await client
.post(Uri(path: 'large-create'), payload: payload, options: [opt]);
} on Exception catch (e) {
print('CoAP encountered an exception: $e');
}
Expand Down
4 changes: 2 additions & 2 deletions example/multi_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ FutureOr<void> main() async {

try {
print('Sending get /hello to ${uri1.host}');
var response = await client1.get('hello');
var response = await client1.get(Uri(path: 'hello'));
print('/hello response: ${response.payloadString}');

print('Sending get /test to ${uri2.host}');
response = await client2.get('test');
response = await client2.get(Uri(path: 'test'));
print('/test response: ${response.payloadString}');
} on Exception catch (e) {
print('CoAP encountered an exception: $e');
Expand Down
6 changes: 3 additions & 3 deletions example/ping.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ import 'config/coap_config.dart';

FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(
final baseUri = Uri(
scheme: 'coap',
host: 'californium.eclipseprojects.io',
port: conf.defaultPort,
);
final client = CoapClient(uri, config: conf);
final client = CoapClient(baseUri, config: conf);

try {
print('Pinging client on ${uri.host}');
print('Pinging client on ${baseUri.host}');
final ok = await client.ping();
if (ok) {
print('Ping successful');
Expand Down
14 changes: 7 additions & 7 deletions example/post_blockwise.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import 'utils.dart';

FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(uri, config: conf);
final baseUri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(baseUri, config: conf);

final opt = UriQueryOption(
'${LinkFormatParameter.title.short}=This is an SJH Post request',
Expand All @@ -27,13 +27,13 @@ FutureOr<void> main() async {
final payload = getRandomString(length: 2000);

try {
print('Sending post /large-create to ${uri.host}');
var response =
await client.post('large-create', payload: payload, options: [opt]);
print('Sending post /large-create to ${baseUri.host}');
var response = await client
.post(Uri(path: 'large-create'), payload: payload, options: [opt]);
print('/large-create response status: ${response.statusCodeString}');

print('Sending get /large-create to ${uri.host}');
response = await client.get('large-create');
print('Sending get /large-create to ${baseUri.host}');
response = await client.get(Uri(path: 'large-create'));
print('/large-create response:\n${response.payloadString}');
print('E-Tags : ${response.etags.join(',')}');
} on Exception catch (e) {
Expand Down
12 changes: 6 additions & 6 deletions example/post_resource.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,26 @@ import 'config/coap_config.dart';

FutureOr<void> main() async {
final conf = CoapConfig();
final uri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(uri, config: conf);
final baseUri = Uri(scheme: 'coap', host: 'coap.me', port: conf.defaultPort);
final client = CoapClient(baseUri, config: conf);

final opt = UriQueryOption(
'${LinkFormatParameter.title.short}=This is an SJH Post request',
);

try {
print('Sending post /large-create to ${uri.host}');
print('Sending post /large-create to ${baseUri.host}');
var response = await client.post(
'large-create',
Uri(path: 'large-create'),
options: [opt],
payload: 'SJHTestPost',
);
print('/large-create response status: ${response.statusCodeString}');
final resourceLocationPath = response.location.path;
print('Resource created under $resourceLocationPath');

print('Sending get $resourceLocationPath to ${uri.host}');
response = await client.get(resourceLocationPath);
print('Sending get $resourceLocationPath to ${baseUri.host}');
response = await client.get(Uri(path: resourceLocationPath));
print('$resourceLocationPath response: ${response.payloadString}');
print('E-Tags : ${response.etags.join(',')}');
} on Exception catch (e) {
Expand Down
Loading

0 comments on commit fafdb01

Please sign in to comment.