iOS(obj-c)で文字列結合
NSString *urlString =[NSString stringWithFormat:@"%@/test.php",dns];
NSString *urlString =[NSString stringWithFormat:@"%@/test.php",dns];
NSString *urlString = [NSString stringWithFormat:@"https://xxxxx.co.jp/test?key1=%@",key1];
DLog(@"urlString:%@", urlString)
NSURLSession *urlSession;
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
sessionConfig.timeoutIntervalForRequest = 5;
sessionConfig.timeoutIntervalForResource = 20;
// 処理を単純化させるためにdelegateは使用しませんでした。
// UI関連の処理を想定していないため、delegateQueueは独自に作成しました。
urlSession = [NSURLSession sessionWithConfiguration:sessionConfig
delegate:nil
delegateQueue:nil];
NSLog(@"get start");
NSMutableURLRequest *request = [NSMutableURLRequest new];
[request setURL:[NSURL URLWithString:urlString]];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[request setValue:@"YKTHttpClient" forHTTPHeaderField:@"User-Agent"];
[request setHTTPMethod:@"GET"];
// 取得するデータサイズが小さいのでtaskはNSURLSessionDataTaskを使用
NSURLSessionDataTask *dataTask
= [urlSession dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSHTTPURLResponse *httpUrlResponse = (NSHTTPURLResponse *) response;
DLog(@"Status code: %ld", httpUrlResponse.statusCode);
CFStringEncoding encoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef) [response textEncodingName]);
NSString *body = [[NSString alloc] initWithData:data encoding:CFStringConvertEncodingToNSStringEncoding(encoding)];
NSData *restoreData = [[NSData alloc] initWithBase64EncodedString:body options:0];
NSString *restoreString = [[NSString alloc] initWithData:restoreData encoding:NSUTF8StringEncoding];
dispatch_async(
dispatch_get_main_queue(),
^{
self.textView.text = restoreString;
}
);
}];
[dataTask resume];
NSString *urlString =@"https://xxxx.co.jp/test";
NSDictionary *params = @{
@"name": name,
@"uuid": uuid,
};
DLog(@"urlString:%@", urlString)
// 連想配列として与えられたパラメータをクエリ文字列に変換する
NSData *query = [self buildQueryWithDictionary: params];
NSURLSession *urlSession;
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
sessionConfig.timeoutIntervalForRequest = 5;
sessionConfig.timeoutIntervalForResource = 20;
// 処理を単純化させるためにdelegateは使用しませんでした。
// UI関連の処理を想定していないため、delegateQueueは独自に作成しました。
urlSession = [NSURLSession sessionWithConfiguration:sessionConfig
delegate:nil
delegateQueue:nil];
NSLog(@"get start");
NSMutableURLRequest *request = [NSMutableURLRequest new];
[request setURL:[NSURL URLWithString:urlString]];
[request setCachePolicy:NSURLRequestUseProtocolCachePolicy];
[request setValue:@"iOS" forHTTPHeaderField:@"User-Agent"];
[request setHTTPMethod:@"POST"];
[request setValue: @"application/x-www-form-urlencoded" forHTTPHeaderField: @"Content-Type"];
[request setValue: [NSString stringWithFormat: @"%lu", (unsigned long)[query length]] forHTTPHeaderField: @"Content-Length"];
[request setHTTPBody: query];
// 取得するデータサイズが小さいのでtaskはNSURLSessionDataTaskを使用
NSURLSessionDataTask *dataTask
= [urlSession dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSHTTPURLResponse *httpUrlResponse = (NSHTTPURLResponse *) response;
DLog(@"Status code: %ld", httpUrlResponse.statusCode);
CFStringEncoding encoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef) [response textEncodingName]);
NSString *body = [[NSString alloc] initWithData:data encoding:CFStringConvertEncodingToNSStringEncoding(encoding)];
NSData *restoreData = [[NSData alloc] initWithBase64EncodedString:body options:0];
NSString *restoreString = [[NSString alloc] initWithData:restoreData encoding:NSUTF8StringEncoding];
dispatch_async(
dispatch_get_main_queue(),
^{
}
);
}];
[dataTask resume];
こんな感じ
public String getHistoryData(String key1) {
HttpURLConnection urlConnection = null;
InputStream inputStream = null;
String result = "";
String str = "";
try {
URL url = new URL("https://xxxxx.co.jp/test?key1=" + key1);
// 接続先URLへのコネクションを開く.まだ接続されていない
urlConnection = (HttpURLConnection) url.openConnection();
// 接続タイムアウトを設定
urlConnection.setConnectTimeout(10000);
// レスポンスデータの読み取りタイムアウトを設定
urlConnection.setReadTimeout(10000);
// ヘッダーにUser-Agentを設定
urlConnection.addRequestProperty("User-Agent", "Android");
// ヘッダーにAccept-Languageを設定
urlConnection.addRequestProperty("Accept-Language", Locale.getDefault().toString());
// HTTPメソッドを指定
urlConnection.setRequestMethod("GET");
//リクエストボディの送信を許可しない
urlConnection.setDoOutput(false);
//レスポンスボディの受信を許可する
urlConnection.setDoInput(true);
// 通信開始
urlConnection.connect();
// レスポンスコードを取得
int statusCode = urlConnection.getResponseCode();
// レスポンスコード200は通信に成功したことを表す
if (statusCode == 200) {
inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
// 1行ずつレスポンス結果を取得しstrに追記
result = bufferedReader.readLine();
while (result != null) {
str += result;
result = bufferedReader.readLine();
}
bufferedReader.close();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// レスポンス結果のJSONをString型で返す
return str;
}
public String PostUserName(String key1, String key2) {
HttpURLConnection urlConnection = null;
InputStream inputStream = null;
String result = "";
String str = "";
try {
URL url = new URL("http://hpph;e.cp.jp"");
// 接続先URLへのコネクションを開く.まだ接続されていない
urlConnection = (HttpURLConnection) url.openConnection();
// 接続タイムアウトを設定
urlConnection.setConnectTimeout(10000);
// レスポンスデータの読み取りタイムアウトを設定
urlConnection.setReadTimeout(10000);
// ヘッダーにUser-Agentを設定
urlConnection.addRequestProperty("User-Agent", "Android");
// ヘッダーにAccept-Languageを設定
urlConnection.addRequestProperty("Accept-Language", Locale.getDefault().toString());
//ヘッダーにContent-Typeを設定する
urlConnection.addRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// HTTPメソッドを指定
urlConnection.setRequestMethod("POST");
urlConnection.setUseCaches(false);
//リクエストボディの送信を許可しない
urlConnection.setDoOutput(true);
//レスポンスボディの受信を許可する
urlConnection.setDoInput(true);
// 通信開始
urlConnection.connect();
//ステップ5:リクエストボディの書き出しを行う。
OutputStream outputStream = urlConnection.getOutputStream();
Map<String, String> keyValues = new HashMap<>();
keyValues.put("key1", key1);
keyValues.put("key2", key2);
if (keyValues.size() > 0) {
Uri.Builder builder = new Uri.Builder();
//HashMapを[key=value]形式の文字列に変換する
for (String key : keyValues.keySet()) {
//[key=value]形式の文字列に変換する。
builder.appendQueryParameter(key, keyValues.get(key));
}
//[key=value&key=value…]形式の文字列に変換する。
String join = builder.build().getEncodedQuery();
PrintStream ps = new PrintStream(outputStream);
ps.print(join);
ps.close();
}
outputStream.close();
// レスポンスコードを取得
int statusCode = urlConnection.getResponseCode();
// レスポンスコード200は通信に成功したことを表す
if (statusCode == 200) {
inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
// 1行ずつレスポンス結果を取得しstrに追記
result = bufferedReader.readLine();
while (result != null) {
str += result;
result = bufferedReader.readLine();
}
bufferedReader.close();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// レスポンス結果のJSONをString型で返す
return str;
}
Mac用PC88のエミュレータが欲しいと思ってたら、 こんなところに!!
HomeBrewのインストーラーだと、SDL1なのでワーニングがでるけど、 SDL2対応だから、これならでない!!
http://kameya-z.way-nifty.com/blog/2021/08/post-bf1e89.html
コンパイルしたら出てきた。