void ApiClient::report(HwScore const& score) { // Construct the post data std::ostringstream oss; score.writeJson(&oss); AESCipher aes(commKey_); std::string cipher = aes.encrypt(oss.str()); // Construct post action char action[128]; std::string uuid_s; UnicodetoUTF8(score.uuid, &uuid_s); snprintf(action, sizeof(action), "/handin/report/%s/", uuid_s.c_str()); // Do post std::string result = doPOST(action, cipher); if (result != "OK") { char exmsg[256]; snprintf(exmsg, sizeof(exmsg), "Save result failed for handin(%s): %s.", uuid_s.c_str(), result.c_str()); throw std::runtime_error(exmsg); } }
string blue_utils_get_msg_content(const string& str,int sig) { if(sig == 4) { if(str.substr(2,4).compare("0500") == 0) { string content; size_t msg_length = blue_utils_number_to10(str.substr(0,2)); if(str.length()>msg_length+2) { string msg = str.substr(14,msg_length*2+2); unsigned char ch[CHINA_SET_MAX], *p = NULL, *e = NULL; for(int i=0; i<msg.length(); i+=4) { int x = blue_utils_unicode_int(strdup(msg.substr(i,4).c_str())); memset((char *)ch, 0, CHINA_SET_MAX); e = UnicodetoUTF8(x,ch); content+=(const char *)ch; } return content; } } else { string content; size_t msg_length = blue_utils_number_to10(str.substr(0,2)); if(str.length()>msg_length+2) { string msg = str.substr(2,msg_length*2+2); unsigned char ch[CHINA_SET_MAX], *p = NULL, *e = NULL; for(int i=0; i<msg.length(); i+=4) { int x = blue_utils_unicode_int(strdup(msg.substr(i,4).c_str())); memset((char *)ch, 0, CHINA_SET_MAX); e = UnicodetoUTF8(x,ch); content+=(const char *)ch; } return content; } } } else { if(str.substr(2,4).compare("0500") == 0) { string content; size_t msg_length = blue_utils_number_to10(str.substr(0,2)); if(str.length()>msg_length+2) { string msg = str.substr(14,msg_length*2+2); char out[512]; char *dest=(char *)PDU_7BIT_Decoding(out,strdup(msg.c_str())); content+=out; return content; } } else { string content; size_t msg_length = blue_utils_number_to10(str.substr(0,2)); cout<<msg_length<<endl; if(str.length()>msg_length+2) { string msg = str.substr(2,msg_length*2+2); char out[512]; char *dest=(char *)PDU_7BIT_Decoding(out,strdup(msg.c_str())); content+=out; return content; } } } return "test"; }
char *blue_utils_get_msg_content(const char *str,int arg) { if(4 == arg ) { // printf("str12=%s\n",str); unsigned char ch[CHINA_SET_MAX], *p = NULL, *e = NULL; char *msg = (char *)malloc(sizeof(char *)*512); memset(msg,'\0',strlen(msg)); char mark[5]; mark[0] = str[2]; mark[1] = str[3]; mark[2] = str[4]; mark[3] = str[5]; mark[4]='\0'; if(strcmp(mark,"0500") ==0 ) { char tmp[3]; tmp[0] = str[0]; tmp[1] = str[1]; tmp[2] = '\0'; int size = blue_utils_number_to10(strdup(tmp)); int length = size*2+2; char *str1 = (char *)malloc(sizeof(char *)*512); memset(str1,'\0',strlen(str1)); int i = 14; int j=0; for(i=14; i<length; i++) { str1[j] = str[i]; j++; } str1[j] = '\0'; i=0; while(str1[i] !='\0') { char tmp[5]; tmp[0] = str1[i]; tmp[1] = str1[i+1]; tmp[2] = str1[i+2]; tmp[3] = str1[i+3]; tmp[4] = '\0'; int x = blue_utils_unicode_int(strdup(tmp)); memset((char *)ch, 0, CHINA_SET_MAX); /* if(e = (UnicodetoUTF8(x, ch)) > ch) { e = '\0'; } */ e = UnicodetoUTF8(x,ch); strcat(msg,(const char *)ch); i+=4; } char *message = strdup(msg); free(msg); msg = NULL; free(str1); str1 = NULL; return message; } else { char tmp[3]; tmp[0] = str[0]; tmp[1] = str[1]; tmp[2] = '\0'; // printf("tmp = %s\n",tmp); int size = blue_utils_number_to10(strdup(tmp)); int length = size*2+2; // printf("size=%d\n",size*2); char *str1 = (char *)malloc(sizeof(char *)*512); memset(str1,'\0',strlen(str1)); int i = 2; int j=0; for(i=2; i<length; i++) { str1[j] = str[i]; j++; } str1[j] = '\0'; i=0; while(str1[i] !='\0') { char tmp[5]; tmp[0] = str1[i]; tmp[1] = str1[i+1]; tmp[2] = str1[i+2]; tmp[3] = str1[i+3]; tmp[4] = '\0'; int x = blue_utils_unicode_int(strdup(tmp)); memset((char *)ch, 0, CHINA_SET_MAX); /*if(e = (UnicodetoUTF8(x, ch)) > ch) { e = '\0'; }*/ e = UnicodetoUTF8(x,ch); strcat(msg,(const char*)ch); i+=4; } char *message = strdup(msg); free(msg); msg = NULL; free(str1); str1 = NULL; return message; } } else { unsigned char ch[CHINA_SET_MAX], *p = NULL, *e = NULL; char *msg = (char *)malloc(sizeof(char *)*512); memset(msg,'\0',strlen(msg)); char mark[5]; mark[0] = str[2]; mark[1] = str[3]; mark[2] = str[4]; mark[3] = str[5]; mark[4]='\0'; printf("************str = %s\n",str); if(strcmp(mark,"0500") ==0 ) { char tmp[3]; tmp[0] = str[0]; tmp[1] = str[1]; tmp[2] = '\0'; int size = blue_utils_number_to10(strdup(tmp)); int length = size*2+2; printf("size=%d\n",size*2); char *str1 = (char *)malloc(sizeof(char *)*512); memset(str1,'\0',strlen(str1)); int i = 16; int j=0; for(i=16; i<length; i++) { str1[j] = str[i]; j++; } str1[j] = '\0'; printf("str1 = %s\n",str1); char out[512]; char *msg1=(char*)PDU_7BIT_Decoding(out,strdup(str1)); printf("msg = %s\n",out); free(str1); str1 = NULL; return strdup(out); } else { char tmp[3]; tmp[0] = str[0]; tmp[1] = str[1]; tmp[2] = '\0'; int size = blue_utils_number_to10(strdup(tmp)); printf("size = %d\n",size); int length = size*2+2; char *str1 = (char *)malloc(sizeof(char *)*512); memset(str1,'\0',strlen(str1)); int i = 2; int j=0; for(i=2; i<length; i++) { str1[j] = str[i]; j++; } str1[j] = '\0'; printf("str1 = %s\n",str1); char out[512]; char *msg1=(char *)PDU_7BIT_Decoding(out,strdup(str1)); printf("msg = %s\n",out); free(str1); str1 = NULL; return strdup(out); } } }