コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

DSからtwitterに投稿するには(4)

Basic認証のためのBASE64エンコードUTF-8文字コード対応、この2つの対応が終わり、あと1つ、UTF-8文字コードの16進数表記ができれば、twitter投稿が簡単にできるはず、ということで、UTF-8文字コードを16進数表記に変換するプログラムを作りました。

void moji216( unsigned char *sdata, char *dText, int byte );

簡単な変換ですが、sdataの文字列を16進数変換して、dText配列に入れるプログラムです。アルファベットと数字は無変換です。
このプログラムを用いると、「twitterに投稿します。」という文字が「twitter%E3%81%AB%E6%8A%95%E7%A8%BF%E3%81%97%E3%81%BE%E3%81%99%83%80%82」と変換されます。

//**************************************************
//  16進数表記に変換
//**************************************************
void  moji216( unsigned char *sdata, char *dText, int byte )
{
int    i, j;
char  t[5];
  dText[0] = 0;
  j = 0;
  for( i=0; i<byte; i++ ){
    if( *sdata==0 ){  break;  }

    if( (*sdata>='0' && *sdata<='9')
      || (*sdata>='a' && *sdata<='z')
      || (*sdata>='A' && *sdata<='Z') ){
      dText[j] = *sdata;
      dText[j+1] = 0;
      if( j>=byte ){  break;  }
      j++;
      sdata++;
    }
    else{
      if( j+3>=byte ){  break;  }
      sprintf( t, "%%%02X", *sdata );
      strcat( dText, t );
      j += 3;
      sdata++;
    }
  }
  dText[j] = 0;
}

httpヘッダ構造体の追加

twitterへのPOST対応をうけて、httpヘッダ構造体にメンバを追加しました。

//Httpのヘッダ設定用構造体
typedef struct HttpHeaderPara{
  long  RecvTime;       //ソケットの受信待ち時間
  long  Portnum;        //ポート番号
  char  *Get;           //取得ファイル名(例 /abc/dfg.jpg)
  char  *Post;          //投稿データ
  char  *Host;          //ホスト名(例 www.xyz.com )
  char  *UserAgent;     //User-Agent(例 Nintendo DS)
  char  *Referer;       //参照元(例 www.xyz.com/ )
  char  *Authorization; //認証
} HttpHeaderParam;

PostとAuthorizationが追加されています。


これらを使って簡単な自動投稿プログラムを作って見ました。投稿成功したので、その話はまた明日にでも。
今日はこの辺で・・・。

本当にやりたいことリスト

(ブログの終わりにやりたいことを書いておきたいと思います)

  • 求職活動・・・このブログで興味を持った人一声かけてください。m(_ _)m
  • Androidプログラム
  • Web系のプログラム