第六日目 サブルーチン
//------------------------------------------------------------
// サブルーチン
//------------------------------------------------------------
// HTTPヘッダーを返す関数
void getHeader(char* header, int statusCode, int length){
// 現在の時間関連変数
time_t timeNow;
char strNow[60];
// 送信ヘッダ関連変数
char message[1024];
char contentType[1024];
char format[HTTP_HEADER_SIZE];
// 現在の時間を取得
time(&timeNow);
strftime(strNow, sizeof(strNow),
"%a, %d %b %Y %H:%M:%S GMT",
gmtime(&timeNow));
// エラーヘッダーの作成
strcpy(contentType, "text/html");
switch (statusCode){
case (200):
strcpy(message, "HTTP/1.1 200 OK");
strcpy(contentType, "application/rss+xml");
break;
case (404):
strcpy(message, "HTTP/1.1 404 Not Found");
break;
case (501):
strcpy(message, "HTTP/1.0 501 Not Implemented");
break;
default:
strcpy(message, "HTTP/1.1 404 Not Found");
break;
}
// ヘッダーを作成
strcpy(format,
"%s\r\n"
"Date: %s\r\n"
"Content-Length: %d\r\n"
"Last-Modified: %s\r\n"
"Content-Type: %s\r\n"
"Accept-Charset: utf-8\r\n"
"\r\n"
);
sprintf(header, format, message,
strNow,
length,
strNow,
contentType);
return;
}
// エラーデータを返す関数
void getError(WSCstring& contentBuffer, int statusCode) {
switch (statusCode){
case (404):
contentBuffer = "404 Not Found";
break;
case (501):
contentBuffer = "501 Not Implemented";
break;
default:
contentBuffer = "404 Not Found";
break;
}
return;
}
// RSSデータを返す関数
void getRss(WSCstring& rssBuffer, WSCstring* pPath) {
// 固定のデータを設定
rssBuffer.setString(
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"
"<rss version=\"2.0\">\r\n"
"<channel>\r\n"
" <title>RSS配信</title>\r\n"
" <description>固定の文字を配信する。</description>\r\n"
" <link>http://localhost</link>\r\n"
" <lastBuildDate>Wed, 21 Oct 2009 16:28:16 GMT</lastBuildDate>\r\n"
" <pubDate>Wed, 21 Oct 2009 16:28:16 GMT</pubDate>\r\n"
" <generator>rss generator v0.1</generator>\r\n"
" <docs>http://localhost</docs>\r\n"
" <language>ja</language>\r\n"
" <item>\r\n"
"</channel>\r\n"
"</rss>");
return;
}
補足
現状では、固定の情報。
いろいろ変更できるといいな。