eXosip 401
时间: 2023-08-28 10:10:00 浏览: 72
eXosip中的401状态码表示服务器需要用户再次发送带认证信息的注册请求。当用户第一次发送注册请求后,如果收到了401状态码的响应,用户可以根据这个状态码来判断是否需要重新发送带认证信息的注册请求。在处理EXOSIP_REGISTRATION_FAILURE事件时,可以选择两种方式进行处理。
第一种方式是自动处理。在eXosip事件处理循环中调用eXosip_automatic_action()函数,该函数会自动帮助用户处理401状态码,用户不需要手动发送带认证信息的注册请求,只需要在第一次注册时就添加好认证信息即可。
第二种方式是手动处理。在EXOSIP_REGISTRATION_FAILURE事件中,可以添加以下代码来处理401状态码:
```c
if ((event->response != NULL) && (event->response->status_code == 401)) {
osip_message_t *reg = NULL;
eXosip_lock();
eXosip_clear_authentication_info(); // 清空认证信息
eXosip_add_authentication_info(username, username, password, "MD5", NULL); // 添加认证信息
eXosip_register_build_register(event->rid, expires, ®);
eXosip_register_send_register(event->rid, reg); // 发送注册请求
eXosip_unlock();
} else {
// 注册失败处理 ...
}
```
以上代码会在收到401状态码时,清空认证信息并添加新的认证信息,然后重新构建并发送带认证信息的注册请求。
总结起来,当eXosip收到401状态码时,用户可以选择自动处理或手动处理来发送带认证信息的注册请求。