use needle instead of request to support gbk encoding