3、获取答案
<p>[TOC]</p>
<h4>简要描述</h4>
<p>> 用任务流水编号tid 每秒轮询获取答案answer</p>
<h4>请求URL</h4>
<ul>
<li><code>http://fapi.suanst.com:8009/getanswer.sa</code> 或 <code>{host}/getanswer.sa</code></li>
</ul>
<h4>请求方式</h4>
<ul>
<li><code>GET</code> 或 <code>POST</code></li>
</ul>
<h4>请求编码</h4>
<ul>
<li><code>UTF-8</code></li>
</ul>
<h4>请求包头</h4>
<p>> 请求包头即 HTTP Request Header</p>
<ul>
<li><code>Content-Type: application/x-www-form-urlencoded; charset=utf-8</code></li>
</ul>
<h4>参数说明</h4>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">tid</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string,字符串</td>
<td>上传图片获取到的任务流水编号tid</td>
</tr>
<tr>
<td style="text-align: left;">r(参数名可自定义)</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string,字符串</td>
<td>随机值,用以避免读取缓存,值可自定义随机内容,建议8位以上</td>
</tr>
<tr>
<td style="text-align: left;">ascii</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int,整数型</td>
<td>是否将返回内容的中文进行escape编码,默认不编码、为1时进行编码</td>
</tr>
</tbody>
</table>
<h4>发包格式</h4>
<pre><code class="language-vb">&quot;为便于观看,对每个字段值后增加了换行,实际发包不需要回车换行符&quot;
tid=1001_31_12185012_f6bcbceef88f
&amp;r=RhO6kOoN5JTwaZp8DH0U7GKbeB2VoNAp
&amp;ascii=</code></pre>
<h4>返回包头</h4>
<p>> 返回包头即 HTTP Response Header</p>
<ul>
<li><code>Content-Type: application/json</code></li>
</ul>
<h4>返回示例</h4>
<pre><code>&quot;为便于观看,对每个字段进行了格式化,实际返回内容无回车换行Tab符&quot;
{
&quot;error&quot;: 0,
&quot;errmsg&quot;: &quot;&quot;,
&quot;warn&quot;: 1,
&quot;warnmsg&quot;: &quot;回答中&quot;,
&quot;answer&quot;: &quot;&quot;
}
// ============ 另一种情况的返回值 ============
{
&quot;error&quot;: 0,
&quot;errmsg&quot;: &quot;&quot;,
&quot;warn&quot;: 0,
&quot;warnmsg&quot;: &quot;&quot;,
&quot;answer&quot;: &quot;1234&quot;
}</code></pre>
<h4>返回参数说明</h4>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">error</td>
<td style="text-align: left;">int,整数型</td>
<td>是否有错误内容 1、0</td>
</tr>
<tr>
<td style="text-align: left;">errmsg</td>
<td style="text-align: left;">string,字符串</td>
<td>详细错误内容,应该在明显位置提示客户,并根据返回详细错误内容调整软件发题的流程</td>
</tr>
<tr>
<td style="text-align: left;">warn</td>
<td style="text-align: left;">int,整数型</td>
<td>是否有提醒内容 1、0</td>
</tr>
<tr>
<td style="text-align: left;">warnmsg</td>
<td style="text-align: left;">string,字符串</td>
<td>详细提醒内容,应该显示在软件应用上,告知客户</td>
</tr>
<tr>
<td style="text-align: left;">answer</td>
<td style="text-align: left;">string,字符串</td>
<td>返回的答案内容,如果还未回答,字段为空字符串</td>
</tr>
</tbody>
</table>
<h4>异常情况判断及处理</h4>
<p>> 1、上传图片后请延迟1秒及以上 再获取答案,否则 可能会因为延迟原因而提示“tid不存在”
2、判断返回内容长度是否>0,并且第一个字符为"{",否则可能是网络或服务器出现问题,导致无法获取。应该重新再获取上传图片服务器地址HOST。
3、上述判断还可以直接判断HTTP响应Status_Code(HTTP状态代码)是否为200,200即可直接进行json解析。如果不是200,则请重新获取HOST</p>
<h4>errmsg 返回内容举例</h4>
<p>> 1、当error为1时,errmsg显示具体详细的错误信息
2、仅包含目前的全部错误返回内容,以后可能还会增加其他错误内容</p>
<pre><code>&quot;TID不正确&quot; &quot;TID不存在&quot;</code></pre>
<h4>warnmsg 返回内容举例</h4>
<ul>
<li>注意:当 warnmsg 等于 “回答中” 时,需要您继续轮询等待返回答案</li>
<li>本函数当 warnmsg 等于 "答案不确定" "图片有误" "超时" 时,应该停止本次的答题流程,延迟1秒重新发题</li>
<li>调用 sendfileex() 函数时,需判断 warnmsg 不等于 "答案不确定" "图片有误" "超时"
而其余的 warnmsg 返回值均不会影响答题流程,仅做提醒用</li>
</ul>
<p>> 1、当warn为1时,warnmsg显示具体详细的提醒信息
2、仅包含目前的全部提醒返回内容,以后可能还会增加其他提醒内容</p>
<pre><code>&quot;回答中&quot; &quot;答案不确定&quot; &quot;图片有误&quot; &quot;超时&quot;</code></pre>